2016-12-13 12 views
0

win7の、Pythonの2.7、TkinterのPythonの変更リストボックスの色をリアルタイムで

私は一度に画面上にいくつかのリストボックスを持っている、と私は、ユーザーが色(背景、テキストの色を変更できるようにする方法を設定しています、境界線の幅、境界線の色など)...リストボックスだけでなく、ラベルフレーム、プログレスバー、ウィンドウフレームなどがあります。

リストボックス(および他のウィジェット)のラベルがグローバルファイル、thuisで宣言されています:

globs.lb1 = tk.Listbox(root, ... 

私は簡単に十分な属性を変更することができますが、すべてのウィジェットを更新するための最良の方法は何ですか?

現在、自分のSettings.pyファイルで、リストボックス(および他のウィジェット)を手動で設定していますが、後でウィジェットを追加すると、Settings.pyファイルを変更する必要があります。

私はttkを使用したいと思います。私はttkでスタイルを変更できますが、ttkはそのスタイルを使用するウィジェットを覚えていますが、ttkにリストボックスはありません。

私は、各リストボックスの設定ができることを、自然のイベントか何かがあった場合は...

おかげで、マーク。

答えて

2

オプション1:作成する各リストボックスを登録するListboxのサブクラスを定義します。これにより、ユーザーが設定を変更したときに、リストボックスのセット/リストを反復処理できます。

オプション2:ttk.Comboboxまたはttk.Treeviewを使用します(サブアイテムの拡張ではなくトップレベルのアイテムのみを使用します)。私は、複数の列と可能な階層関係を持つ、スーパーチャージされたリストボックスとしてツリービューを考えることができると思います。

+0

ダン・テリー、速かった。私はそれを得ると思います、リストボックス(他のウィジェット)のラベルをリスト内の項目としてグローバルなリストを作成してから、単に範囲(len(global_list))のiを行います:...好きです。ありがとう。 –

+0

さらに優れています: 'registration_widgetsのウィジェット:repaint(widget)'。結局私はIDLEと同じ問題に直面するかもしれません。ユーザーはエディタのテキストウィジェット(シェルを含む)をカスタマイズできますが、他のものはカスタマイズできません。私はオプション1を検討することができますが、その他の優先事項があります。私はオプション2が可能になるまで待つ。私たちはttkウィジェットを使い始めています。変換が完了し、カスタマイズされたスタイルを使用する方法を学ぶとき、スタイルを使用してダイアログのカスタマイズを検討することがあります –

関連する問題