Radiobutton wechselt bei NB Seitenwechsel das Value (gelöst)

Plattformunabhängige GUIs mit wxWidgets.
Antworten
Pwyll
User
Beiträge: 2
Registriert: Montag 3. März 2008, 18:50

Samstag 12. April 2008, 16:26

Hallo zusammen,

Habe ein kleines Problem mit Radiobuttons innerhalb einer Gruppe(wx.RB_GROUP) und einem Notebook.
Wenn ich das Value speichere und danach einen anderen Datensatz reinlade, der einen anderen Wert beinhaltet, wechselt das Value bei einem NB-Seitenwechsel auf den vorherigen Wert, allerdings nur wenn ich wieder auf die NB Seite, wo die Radiobuttons sich befinden, zurückkehre :?, wenn ich zwischen den anderen switche passiert nichts.
Die Werte setze ich über eine Funktion, die beim Seitenwechsel garantiert nicht aufgerufen wird.
Habe zwar im Notebook ein Event Layout(), allerdings wenn ich dieses deaktiviere hält der Fehler an. Kann also nichts damit zu tun haben
Anderswo gibt es aber keinen SetValue() Befehl mehr.

Hab leider keinen Plan mehr wo der Fehler noch liegen kann.

Fakten: Phyton und MySQL-DB

Das sind die RB:

Code: Alles auswählen

ArtMovein = {}
        artMoveinBox = wx.BoxSizer(wx.HORIZONTAL)
        ArtMovein["Abroad"] = wx.RadioButton(self, 1, label = "Ausland", style = wx.RB_GROUP)
        ArtMovein["Abroad"].SetValue(False)
        artMoveinBox.Add(ArtMovein["Abroad"], 0, wx.TOP|wx.BOTTOM, 4)
        artMoveinBox.AddSpacer(10,0)
        ArtMovein["Canton"] = wx.RadioButton(self, 2, label = "Kanton")
        ArtMovein["Canton"].SetValue(False)
        artMoveinBox.Add(ArtMovein["Canton"], 0, wx.TOP|wx.BOTTOM, 4)
        vbox4.Add(artMoveinBox, 0, wx.EXPAND)
        topBox.Add(vbox4, 0, wx.EXPAND)

# So werden die Werte innerhalb der Funktion gesetzt:
# Die Funktion wird definitiv nur beim Laden des Datensatzes aufgerufen
# Die Werte werden auch korrekt gesetzt, nur wenn ich eben den 
# Seitenwechsel vornehme, wechselt er auf den anderen Radiobutton (Value des vorhergehenden Datensatzes)

def SetArtValues():
    try:
        ArtMoveinValue =  DataTuple[0]["ArtMovein"]
        if ArtMoveinValue == "1":
            ArtMovein["Abroad"].SetValue(True)
            #print "Ausland"
        if ArtMoveinValue == "2":
            ArtMovein["Canton"].SetValue(True)
            #print "Kanton"
    except:
        pass

Help :shock:

Vielen Dank im voraus
Zuletzt geändert von Pwyll am Sonntag 13. April 2008, 12:41, insgesamt 1-mal geändert.
Pwyll
User
Beiträge: 2
Registriert: Montag 3. März 2008, 18:50

Sonntag 13. April 2008, 12:39

So, habe die Antwort für mich gefunden.
Das Problem lag scheinbar, im wx.EVT_RADIOBUTTON.

Habe es in ein wx.EVT_LEFT_DOWN gewandelt und setze darüber das Value.
Jetzt wechselt es auch nicht mehr beim NB Seitenwechsel das Value.

Hier der Code:

Code: Alles auswählen

    def OnClickRadioButton(self, event):
        toolbar.EnableTool(saveToolID, True)
        self.RadioButtonClicked = True
        event.GetEventObject().SetValue(True)
Ist zwar irgendwie eigenartig, aber wenn es so geht, warum nicht :D
Vielleicht hilfts ja mal bei jemandem
Antworten