Python:Tkinter小部件背景(按钮,条目等)

时间:2011-04-13 23:58:31

标签: python tkinter

我在创建GUI时遇到了一些问题。这是在改变背景时,我可以改变整个背景,也可以改变标签等的背景,但是当涉及按钮和输入字段等时,按钮后面有一个白色区域,我似乎无法改变:S < / p>

问题可以在下图中看到。

(没有足够的声望来发布图片,所以会链接它) http://www.thesite.dk/upload/media/tkinter.png

使用代码:

from Tkinter import *

background = "BLACK"
textColor = "WHITE"
root = Tk()
root.configure(bg=background)

Email = Label(root, text="Enter E-mail Address :", font=("Lucida Grande", 12), fg=textColor, background=background)
Email.grid(row=6, column=0, sticky=NW, padx=19)

EmailField = Entry(root, width=30)
EmailField.grid(row=6, column=0, columnspan=3, sticky=NW, padx=159)

EmailButton = Button(root, text="Mail It !", background=background)
EmailButton.grid(row=6, column=0, columnspan=6, sticky=NW, padx=389)

SM_Status = StringVar()
EmailStatus = Label(root, textvariable=SM_Status, font=("Lucida Grande", 12), fg=textColor, background=background)
EmailStatus.grid(row=6, column=2, sticky=NW, padx=20)

可能有一个简单的解决方案,但是无数的谷歌和几个小时的阅读文档和论坛帖子让我无处可寻:(我希望你能帮助...

是的,我正在使用Mac OS X和python 2.6

3 个答案:

答案 0 :(得分:10)

我知道已经有一段时间了,你肯定不再处理这段代码,但我找到了一个解决方案,我会在这里发布给每个有类似问题的人。这与将条目周围的区域作为背景颜色的方式相同:

highlightbackground=color

答案 1 :(得分:2)

在macintosh上,你可以对原生按钮的背景颜色做些什么。这就是我们为原生按钮付出的代价。在其他平台和其他小部件上,您看到的可能是“突出显示背景”,可以使用小部件的highlightbackgroundhighlightthickness属性进行修改。这是小部件用来表示焦点的区域。

答案 2 :(得分:1)

这似乎与平台有关,也许主题依赖于此。我猜你是按照按钮在屏幕截图中看起来的方式在Mac上。看起来按钮文本是在位图中绘制的,它提供了按钮的圆形轮廓。它可能不在Tkinter的控制范围内。

在具有经典主题的Windows上,按钮背景为黑色,但由于浮雕凸起,因此呈灰色轮廓。当我将它设置为浮雕= FLAT时,它完全是黑色。

如果您所包含的样本可以直接运行,那将会很有帮助。我必须为textColor添加一个定义,注释掉command = CMD.send_mail,并在最后添加root.mainloop()。我还在按钮设置中添加了textColor = WHITE。

尝试使用浮雕选项,或更改系统主题以查看是否可以影响按钮的绘制方式。