如何在Mac OS X上更改Tkinter按钮的前景色或背景色?

2024-09-28 22:56:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在学习Python编程中的Tkinter章节,遇到了一个按钮的前景色和背景色不会改变的问题。我正在使用Python2.6.1开发MacOSX10.6系统。标签的颜色会改变,但按钮的颜色不会改变。例如:

from Tkinter import *

Label(None, text='label', fg='green', bg='black').pack()
Button(None, text='button', fg='green', bg='black').pack()

mainloop()

在我的Mac系统上,标签的颜色会改变,但按钮的颜色不会改变。在使用Python 2.6.1的Windows系统上,标签和按钮的颜色都会改变

有人知道出了什么问题吗

我已经检查了Interface Builder,似乎没有选项可以更改该工具中按钮的前景色或背景色。可以编辑标签的前景色和背景色

Mac OS X渲染系统(Quartz?)可能不支持(轻松地)更改按钮的前景和背景


Tags: textnone颜色tkintermac系统green标签
3条回答

有一种解决方案可以更改Mac上按钮的背景

使用:

highlightbackground=color

例如:

submit = Button(root, text="Generate", highlightbackground='#3E4149')

这将产生一个与背景相匹配的漂亮按钮:

Button

对于像我一样遇到这个问题的其他人来说,解决方案是使用ttk模块,它在OSX10.7上默认可用。不幸的是,设置背景色仍然无法在开箱即用的情况下工作,但文本颜色可以

它需要对代码进行一些小的更改:

原件:

from Tkinter import *

Label(None, text='label', fg='green', bg='black').pack()
Button(None, text='button', fg='green', bg='black').pack()

mainloop()

使用ttk:

import tkinter as tk
from tkinter import ttk

root = tk.Tk()

# background="..." doesn't work...
ttk.Style().configure('green/black.TLabel', foreground='green', background='black')
ttk.Style().configure('green/black.TButton', foreground='green', background='black')

label = ttk.Label(root, text='I am a ttk.Label with text!', style='green/black.TLabel')
label.pack()

button = ttk.Button(root, text='Click Me!', style='green/black.TButton')
button.pack()

root.mainloop()

我认为答案是mac电脑上的按钮根本不支持改变背景和前景颜色。正如您所看到的,这不是Tk独有的

相关问题 更多 >