更改tkSimpleDialog的背景颜色
我想把 tkSimpleDialog 的背景颜色改成和我系统默认的背景颜色一样:
GTK:
tk:
我尝试在我能想到的地方都加上 config(bg='#CCC9C1')
,但是只成功改变了对话框的一部分背景颜色。
请问可以在 tkSimpleDialog 中改变背景颜色吗?
代码示例:
from Tkinter import *
import tkSimpleDialog
class MyDialog(tkSimpleDialog.Dialog):
def body(self, master):
Label(master, text="First:").grid(row=0)
Label(master, text="Second:").grid(row=1)
self.e1 = Entry(master)
self.e2 = Entry(master)
self.e1.grid(row=0, column=1)
self.e2.grid(row=1, column=1)
return self.e1 # initial focus
def apply(self):
first = int(self.e1.get())
second = int(self.e2.get())
print first, second # or something
root = Tk()
root.withdraw()
d = MyDialog(root)
2 个回答
1
看起来你可能只需要使用 tkinter.ttk库,这是Tk的一个主题版本,具体可以参考 这个回答。希望这对你有帮助。
这是Python 2.x的参考资料,目前是2.7版本:http://docs.python.org/library/ttk.html
4
找到了方法。正如提到的,root.config(...)
只会改变主窗口的外观(就是我们通常会隐藏的那个侧边窗口)。对于全局设置,我们建议使用 Tk 数据库文件(也就是叫 optionDB
的文件),这个文件的格式和 .Xdefaults
(X 资源数据库)文件是一样的。然后我们可以在脚本中这样使用它:
root = Tk()
root.option_readfile('optionDB')
更棒的是,虽然不太推荐,但我们可以直接在脚本中设置“全局”设置:
root = Tk()
root.option_add('*background', '#CCC9C1')
root.option_add('*Entry*background', '#FFFFFF')
可用的关键词有:
*font
*Label*font
*background
*Entry*background
*foreground
*Listbox*foreground