【问题标题】:Setting Tkinter/ttk Frame background color设置 Tkinter/ttk 帧背景颜色
【发布时间】:2014-07-03 22:42:18
【问题描述】:

我正在尝试更改 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。我该怎么做?

编辑:我附上了我的窗口的样子。我不想要灰色。 :/ (注意。显然我没有足够的代表来发布图片,所以这里有一个指向我当前窗口的 imgur 的链接:http://imgur.com/KyhbdMB

【问题讨论】:

  • 你的例子很适合我...
  • 对此有很多疑问。请先尝试使用google search
  • 你的操作系统是什么?如果您使用的是 mac 系统,则存在关于前景色/背景色的问题。不确定它是否仍然存在,但尝试搜索特定于 mac 的答案。
  • 我正在使用小牛队。我已经在网上寻找答案,我只是找不到有效的答案。我阅读了有关按钮的背景问题,但据我了解,我只想更改按钮的填充,但找不到执行此操作的选项。

标签: python tkinter ttk


【解决方案1】:

您的框架的大小仅为容纳两个子窗口(按钮)所需的最小大小。似乎您希望框架填充主窗口。当您对框架进行网格化时,您应该添加粘性选项以使其扩展以填充可用空间(例如: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 列提供备用空间。这将导致框架扩展以填充窗口。

【讨论】:

  • 这更接近我想要的,但现在缩放窗口时看起来像这样:imgur.com/0HnDg9I。如何减少 Test 2 按钮的填充?
【解决方案2】:

它可以在我的电脑上运行!

试试这个:

  • 更新您的 Python 环境(在 Py 3.4 Windows 32 位下测试)
  • 安装最新的TTK包

【讨论】:

  • 我使用的是 Py 2.7,我所有的大型应用程序都是用 2.7 编码的。您知道 2.7 中有解决此问题的方法吗?
  • 我不知道。可能是2.7版本没有定义某些参数或命令。
猜你喜欢
  • 2019-06-25
  • 2011-04-30
  • 2014-07-08
  • 2013-07-12
  • 2018-08-19
  • 2016-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多