首页 文章

设置Tkinter / ttk帧背景颜色

提问于
浏览
2

我正在尝试改变ttk框架的背景颜色,我已经查找了其他示例,但似乎都没有 . 到目前为止这是我的代码:

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()

窗口具有我想要的背景颜色,但框架仍然具有默认的灰色背景 . 有什么我需要添加不同的东西?我希望除了按钮之外的整个窗口都是#334353颜色 . 我该怎么做呢?

编辑:我've attached what my window looks like. I don'吨想要灰色 . :/(注意:我没有足够的代表显然发布图片,所以这里有一个链接到我当前窗口的imgur:http://imgur.com/KyhbdMB

2 回答

  • 0

    您的框架只能调整为容纳两个子窗口(按钮)所需的最小尺寸 . 看起来你想要框架填满主窗口 . 在对框架进行网格化时,应添加粘性选项以使其展开以填充可用空间(例如: frame.grid(column=1,row=1,sticky='news') ) . 然后,您需要让父级将所有空间分配给此网格单元格 . 为此,您希望为父窗口使用grid_rowconfigure和grid_columnconfigure方法 . 在这种情况下:

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

    它告诉主框架网格几何管理器应该为单元格和第1行第1列提供备用空间 . 这将导致框架扩展以填充窗口 .

  • 3

    它适用于我的电脑!

    试试这个:

    • 更新Python环境(在Py 3.4 Windows 32bit下测试)

    • 安装最新的TTK包

相关问题