web-dev-qa-db-ja.com

デフォルトのウィンドウカラーTkinterおよび16進数のカラーコード

単にウィンドウを作成するときのTkinterのデフォルトウィンドウの色を知りたいのですが。

root = Tk()

ある場合は、ウィジェットを同じ色に設定するか、16進数のカラーコードを使用できますか? (rgbを使用)

私が「通常の」ウィンドウで見つけたカラーコードは次のとおりです。

R = 240、G = 240、B = 237

ありがとう。

11
user2063

あなたが何を探しているのか正確にはわかりませんが、これでうまくいきますか?

_import Tkinter

mycolor = '#%02x%02x%02x' % (64, 204, 208)  # set your favourite rgb color
mycolor2 = '#40E0D0'  # or use hex if you prefer 
root = Tkinter.Tk()
root.configure(bg=mycolor)
Tkinter.Button(root, text="Press me!", bg=mycolor, fg='black',
               activebackground='black', activeforeground=mycolor2).pack()
root.mainloop()
_

ウィンドウの現在の値を見つけて、それを使用するようにウィジェットを設定したい場合は、cgetが適切です。

_import Tkinter

root = Tkinter.Tk()
defaultbg = root.cget('bg')
Tkinter.Button(root,text="Press me!", bg=defaultbg).pack()
root.mainloop()
_

新しいウィジェットのデフォルトの背景色を設定したい場合は、tk_setPalette(self, *args, **kw)メソッドを使用できます。

_root.tk_setPalette(background='#40E0D0', foreground='black',
               activeBackground='black', activeForeground=mycolor2)
Tkinter.Button(root, text="Press me!").pack()
_

すると、ウィジェットは、ウィジェットパラメータで設定する必要なしに、デフォルトでこの背景色を持ちます。インラインヘルプ関数import Tkinter; help(Tkinter.Tk)には、役立つ情報がたくさんあります。

36
rudivonstaden

rudivonstadenの答えは私に問題の解決策を導きましたが、_"bg"_が不明な色名であるため、何らかの理由でroot.cget("bg")は失敗します。

ただし、ウィジェットにそのプロパティを含む辞書があることがわかっている場合、_root["bg"]_はウィジェットの背景色を返します。

したがって、システムのデフォルトの背景色を上書きせずにmyWindowという名前のウィンドウを作成する場合、_myWindow["bg"]_はウィンドウのデフォルトの背景色であり、そのウィンドウ内にフレームなしのテキストフィールドを作成するときに使用できます。

2
Dave Cosmtock

ボタンの色をシステムのデフォルトに設定しようとしました。これは私が遭遇した最高のソリューションです:

root.configure(background='SystemButtonFace')

ソース: https://stackoverflow.com/a/53460702/10346152

1
SKS

私が見つけたTkinterウィンドウのデフォルトの色は#F0F0F0でした

0
Alex Efron