python设置背景颜色(mac)_python – 如何在Mac上为ttk / Tkinter的笔记本中的Frame匹配背景颜色?...

在我的Mac上使用基于Tkinter ttk的GUI时,我注意到背景颜色和Notebook小部件存在问题.将ttk.Frame添加为ttk.Notebook选项卡时,框架的显示背景与笔记本选项卡的“插入”背景不匹配.

如何使ttk.Frame与周围的背景颜色相匹配,而无需对非Mac用户看起来很奇怪的值进行硬编码?

我读了一些建议自定义样式的SO答案,但是在这种情况下如何查询父窗口小部件的背景颜色还不清楚.据我所知,他们都是一样的!

>>> ttk.Style().lookup("TFrame", "background")

'systemWindowBody'

>>> ttk.Style().lookup("Notebook", "background")

'systemWindowBody'

>>> ttk.Style().lookup("Notebook.client", "background")

'systemWindowBody'

>>> ttk.Style().lookup("Notebook.tab", "background")

'systemWindowBody'

以上屏幕截图的示例代码:

import Tkinter

import ttk

class GUI(object):

def __init__(self,root):

self.root = root

self.root.title(u"Frame Mismatch Example")

self.mainframe = ttk.Frame(self.root, padding=(6, 6, 12, 12))

self.mainframe.grid(sticky='nwse')

self.notebook = ttk.Notebook(self.mainframe)

self.tab1 = ttk.Frame(self.notebook)

ttk.Button(self.tab1, text='Exit', command=self.root.destroy).pack(padx=100, pady=100)

self.notebook.add(self.tab1, text="Tab 1")

self.notebook.pack()

def main():

root = Tkinter.Tk()

root.columnconfigure(0, weight=1)

root.rowconfigure(0, weight=1)

makeGUI = GUI(root)

root.mainloop()

if __name__ == '__main__':

main()

重要细节:这与Python 2.7.8,Tcl / Tk 8.5.15(由Tk.eval(‘info patchlevel’)报告)一起提供.

最佳答案 我遇到了’systemWindowBody’问题,只是使用sys.platform检查操作系统,并仅为OSX硬编码颜色.

如果您有大量小部件,则可以使用OSX的特定主题. (这是我发现的一个很好的tkinter主题答案:Change color of “tab header” in ttk.Notebook)

我知道这可能不太理想,但它至少会确保你不会搞砸其他平台上的外观.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值