Configuración de Tkinter / ttk Color de fondo del marco

Estoy tratando de cambiar el color de fondo de un marco de ttk y he buscado otros ejemplos, pero ninguno parece funcionar. Este es mi código hasta ahora:

from Tkinter import * import ttk p = Tk() p.geometry('600x350') p.configure(bg='#334353') gui_style = ttk.Style() gui_style.configure('My.TButton', foreground='#334353') gui_style.configure('My.TFrame', background='#334353') frame = ttk.Frame(p, style='My.TFrame') frame.grid(column=1, row=1) ttk.Button(frame, text='test', style='My.TButton').grid(column=0, row=0) ttk.Button(frame, text='Test 2', style='My.TButton').grid(column=3, row=3) p.mainloop() 

La ventana tiene el color de fondo que quiero, pero el marco todavía tiene el fondo gris predeterminado. ¿Hay algo que necesito agregar diferente? Quiero que toda la ventana, excepto los botones, sea el color # 334353. ¿Cómo hago esto?

EDITAR: He adjuntado lo que parece mi ventana. No quiero el gris. : / (Nota. No tengo suficiente representante para publicar imágenes al parecer, así que aquí hay un enlace a imgur con mi ventana actual: http://imgur.com/KyhbdMB

Su marco solo tiene el tamaño mínimo requerido para mantener las dos ventanas secundarias (los botones). Parece que quieres que el marco llene la ventana principal. Cuando haga una cuadrícula en el marco, debe agregar la opción adhesiva para expandirla y llenar el espacio disponible (por ejemplo: frame.grid(column=1,row=1,sticky='news') ). Luego, necesita que el padre asigne todo el espacio en esta celda de la cuadrícula. Para eso desea utilizar los métodos grid_rowconfigure y grid_columnconfigure para la ventana principal. En este caso:

 p.grid_columnconfigure(1, weight=1) p.grid_rowconfigure(1, weight=1) 

que le dice al administrador de la geometría de la cuadrícula del cuadro principal que se debe dar espacio libre a la celda y la fila 1 de la fila 1. Esto hará que su marco se expanda para llenar la ventana.

Funciona en mi PC!

Prueba esto:

  • Actualice su entorno Python (probado en Py 3.4 Windows 32bit)
  • Instale el último paquete TTK