更改tkSimpleDialog的bg颜色

时间:2012-01-11 11:00:33

标签: python tkinter

我想更改tkSimpleDialog的bg颜色以匹配我的系统默认bg颜色:

GTK:

GTK

TK:

tk

我试图将config(bg='#CCC9C1')放在我能想到的任何地方,但我设法只针对对话中的某些部分。

是否可以在tkSimpleDialog中更改bg颜色?


代码示例:

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 个答案:

答案 0 :(得分:4)

找到出路。如上所述,root.config(...)仅在根窗口(我们通常隐藏的侧窗口)上更改外观。对于全局设置,我们鼓励使用与optionDB(X资源数据库)文件格式相同的Tk数据库文件(即名为.Xdefaults)。然后我们在这样的脚本中使用它:

root = Tk()
root.option_readfile('optionDB')

更好的是,出于某种原因,我们可以直接在脚本中设置“全局”设置:

root = Tk()
root.option_add('*background', '#CCC9C1')
root.option_add('*Entry*background', '#FFFFFF')

可用的关键字是:

  

*字体
  *标签*字体
  *背景
  *进入*背景
  *前景
  *列表框*前景

答案 1 :(得分:1)

看起来您可能只需要使用tkinter.ttk library,这是Tk的主题版本,如this answer所示。希望它有所帮助。

以下是Python 2.x的参考资料,目前为2.7:http://docs.python.org/library/ttk.html