変更方法のフォアグラウンド、または背景色のTkinterボタンMac OS X?
質問
私はTkinter章プログラミングPythonの出る問題を前景と背景の色のボタンに変わりはありません。また、Mac OS X10.6システムのバージョンのPythonと2.6.1.また、この色のラベルに変化がないの色のボタンを押します。例えば:
from Tkinter import *
Label(None, text='label', fg='green', bg='black').pack()
Button(None, text='button', fg='green', bg='black').pack()
mainloop()
自分のMacシステム、色、ラベル変更の色のボタンなのです。WindowsシステムのバージョンのPythonと2.6.1の色のラベル、ボタンに変化します。
誰かがおかしい?
私ェイビルダーで表示されることがないオプションのフォアグラウンド、または背景色のボタンをツールです。あの編集と前景色と背景色のラベル。
Mac OS Xのレンダリングシステム(石英?) 場合にだけサポートしない(容易に)変化するfgのと背のボタンを押します。
解決
私は答えはMac上のボタンは、単に背景と前景の色を変更することはできませんということだと思います。あなたが見てきたように、これはTkのに固有のものではありません。
他のヒント
私が行ったように、この質問時に起こる他の誰のために、解決策は、 TTK に使用することですOS X 10.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()
年後に、これはまだ問題があることを、その非常に迷惑ます。
他の人が言及したように、とにかく、highlightbackground(境界線の色)は、Mac上のバックグラウンドの代わりに使用することができます。あなたが巨大であることを(ボタンまたはそれ以上のサイズ)の境界線のサイズを大きくした場合、あなたは素敵な、固体の背景色を取得します。これは、ボタンのラベルの外観を与えます。
あなたの場所を使用している場合は、これは動作しますが、あなたは、グリッドのようなものを使用していない場合。グリッドを用いて、境界線のサイズを増加させることは、残念ながら、自動的にボタンのサイズを増加させる。
あなたは、グリッドを使用しなければならない場合は、あなたは常にそれをハックすることができます....あなたの無色グリッドボタンを作成します。次の親にそれの上に背景色ボタンを場所を使用しています。これは、上の「コマンド」またはあなたがイベントをバインドボタンとボタンになります。
あなたのコードはOSに依存しないようにしたい場合は、は、あなたが「もしOS == 『マック』」ステートメントを追加したりしてもその場合はMac上のボタンを変更しますが、Windowsまたは上だけでそれを残し、カスタム機能を追加することができますいずれかLinuxの。ここでは、前者です。
from tkinter import *
import platform
if platform.system() == "Darwin": ### if its a Mac
B = Button(text="Refersh All Windows", highlightbackground="Yellow", fg="Black", highlightthickness=30)
else: ### if its Windows or Linux
B = Button(text="Refresh All Windows", bg="Yellow", fg="Black")
B.place(x=5, y=10, width=140, height=30)
mainloop()
私は、これは同様に動作しない理由として見ていました。私が試してみて、それがラベルを持っていると、ラベルとクリックをバインドすることで解決する簡単な方法を発見しました。その後、クリックを模倣する短い時間のラベル変更色を持っています。ここでは一例です。
def buttonPress(*args):
searchB.config(state = "active")
searchB.update()
time.sleep(0.2)
searchB.config(state = "normal")
## Whatever command you want
searchB = Label(main, text = "Search", bg = "#fecc14", fg = "Black", activebackground = "Red", highlightbackground="Black")
searchB.bind("<Button-1>", startSearch)
searchB.pack()
これは私のために働いてます:
self.gnuplot_bt = Button(
self.run_but_container, text="Plot with Gnuplot", font="Helvetica", command=self.gnuplot,
highlightbackground ="#8EF0F7", pady=2, relief=FLAT
)
コードは、Mac OS X上のTkinterのボタンの背景を変更することができ、以下を確認します。
self.btn_open = tk.Button(self.toolbar,
text = "Open",
command=self.open,
highlightbackground = "gray")
しかし、それはttk.ButtonのBGを変更することはできません。
行うことができるのでtkmacosxからPypi
ルインストール
のためのpython2
pip install tkmacosx
のためのpython3
pip3 install tkmacosx
現在利用で
from tkinter import *
from tkmacosx import Button
root = Tk()
B1 = Button(root, text='Mac OSX', bg='lightblue',fg='yellow', borderless=1)
B1.pack()
root.mainloop()
で動作するmac os xです。
P.S 詳しい情報は見
でPypi