Win7, Python 2.7, TkinterPython ändern listbox Farben in Echtzeit
ich auf einmal auf dem Bildschirm mehrere Listenfelder, und ich bin die Einrichtung einer Art und Weise den Benutzer zu lassen, die Farben ändern (Hintergrund, Textfarbe , Rahmenbreite, Rahmenfarbe, etc ...) Es gibt mehr als nur Listenfelder, es gibt Etikettenrahmen, Fortschrittsbalken, Fensterrahmen, um nur einige zu nennen.
Die Listbox (und andere Widgets) Etiketten werden in einer Datei Globals, thuis erklärt:
globs.lb1 = tk.Listbox(root, ...
ich die Attribute leicht genug ändern, aber was ist die beste Methode, um alle Widgets zu aktualisieren?
Momentan stelle ich in meiner Settings.py-Datei manuell jedes Listenfeld (und andere Widgets) ein. Wenn ich jedoch später ein Widget hinzufüge, muss ich natürlich daran denken, die Datei Settings.py zu ändern.
Ich würde gerne ttk verwenden, ich denke ttk erlaubt mir, den Stil zu ändern, dann ttk wird sich erinnern, welche Widgets diesen Stil verwenden, aber es gibt keine Listbox in ttk.
Gäbe es ein Ereignis oder etwas in der Art I-Setup für jedes Listenfeld kann ...
Danke, Mark.
Verdammt Terry, das war schnell. Ich denke, ich bekomme es, ich kann eine globale Liste mit den Listenfeldern (andere Widgets) Labels als Einträge in der Liste machen, dann tun Sie einfach ein for i in Bereich (len (global_list)): ... Ich mag es. Vielen Dank. –
Noch besser: 'für Widget in registered_widgets: Repaint (Widget)'. Ich könnte schließlich dasselbe Problem mit IDLE haben. Benutzer können Editor-Text-Widgets anpassen (einschließlich der Shell), aber sonst nichts. Ich könnte Option 1 in Betracht ziehen, habe aber andere Prioritäten. Ich werde warten, bis Option 2 möglich ist. Wir fangen an, ttk-Widgets zu verwenden. Wenn die Konvertierung abgeschlossen ist und ich die Verwendung benutzerdefinierter Stile erkläre, kann eine Anpassung des Dialogs über Stile in Betracht gezogen werden –