48

私はプログラミング Python の Tkinter の章に取り組んでいますが、ボタンの前景色と背景色が変わらないという問題に遭遇しました。Python 2.6.1 を搭載した Mac OS X 10.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?) は、ボタンの fg と bg の変更を (簡単に) サポートしていない可能性があります。

4

8 に答える 8

31

答えは、Mac のボタンが背景色と前景色の変更をサポートしていないということだと思います。ご覧のとおり、これは Tk に固有のものではありません。

于 2009-10-07T10:58:11.183 に答える
20

私がしたようにこの質問に遭遇した他の人にとって、解決策は、 OSX10.7でデフォルトで利用可能なttkモジュールを使用することです。残念ながら、背景色の設定はそのままでは機能しませんが、テキストの色は機能します。

コードを少し変更する必要があります。

オリジナル:

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()
于 2012-03-03T04:04:44.137 に答える