1

特定のウィジェットのデフォルトの Tkinter kwargs 値を変更するにはどうすればよいですか?

tk_setPalette(theme) で一般的な Tkinter テーマを設定できることはわかっているので、デフォルト値を計算して上書きし、新しいテーマに最適な色を使用しようとしますが、もっと制御できるものが欲しいです。

たとえば、Tkinter ウィジェットの背景色を簡単に変更したいとします。次のようにします。

import Tkinter as tk
COLOR = 'blue' #This would be in some constant or setting modules

class CustomButton(tk.Button):
    def __init__(self, root, **options):
        tk.Button.__init__(self, root, bg=COLOR, **options)

次に、ある時点で背景色を青から赤に変更したい場合は、setting.py モジュールを編集するだけです。(背景は一例です。任意の **kwargs を簡単に変更したい)

これを行うためのより良い方法があると確信しており、ラッパークラスのすべてのウィジェットをオーバーライドせずに、どこかでデフォルトのウィジェット値を設定できます...

4

2 に答える 2

1

これを行うための組み込み機能はありませんが、数行のコードで実装できます。config (または configure) メソッドを使用して、実行時に任意の属性を変更できます。たとえば、次のようなことができます。

def resetUI(self, bg=None, fg=None):
    for button in list_of_buttons:
        button.config(background=bg, foreground=fg)
于 2013-08-12T19:17:29.593 に答える