2017-12-25 35 views
0

Wie Sie die Werte der grafischen Elemente der WxWidgets in Python speichern (und wiederherstellen)? Ich möchte etwas freundlicher, vielleicht mit einem for, um alle Elemente zu kratzen und den aktuellen Wert in einer txt speichern, wenn ich das Fenster schließe und wiederherstellen, wenn ich die App laden. Ich möchte nicht zwei Zeilen Code (speichern und wiederherstellen) für jedes neue Element eingeben, das ich hinzufüge.wxWidgets Python speichern Kontrollkästchen und andere Elemente Werte in einem Text

+0

Welche Version von {wx} Python verwenden Sie? Welches Betriebssystem/Toolkit? – Igor

+0

wxWidets = 4.0.0a3 gtk2 (Phönix), Python 3 in Ubuntu 16.04 – hildogjr

+0

Siehe http://docs.wxwidgets.org/trunk/classwx_config_base.html für die Referenz. – Igor

Antwort

0

@Igor, danke von der Verwendungsspitze config_base. Ich habe diesen Code erstellt basierend auf:

configHandle = wx.Config(CONFIG_FILE) 
# Sweep all elements in `self()` to find the grafical ones 
# instance of the wxPython and salve the specific configuration. 
for wxElement_name, wxElement_handle in self.__dict__.items(): 
    # Each wxPython object have a specific parameter value 
    # to be saved and restored in the software initialization. 
    if isinstance(wxElement_handle, wx._core.TextCtrl): 
     configHandle.Write(wxElement_name, wxElement_handle.GetValue()) 
    elif isinstance(wxElement_handle, wx._core.CheckBox): 
     configHandle.Write(wxElement_name, ('True' if wxElement_handle.GetValue() else 'False')) 
    elif isinstance(wxElement_handle, wx._core.SpinCtrl): 
     configHandle.Write(wxElement_name, str(wxElement_handle.GetValue())) 
    . 
    . 
    . 

Zur Wiederherstellung verwende ich die umgekehrte Logik dieses Codes.

Verwandte Themen