RadioButton IsChecked frage

Plattformunabhängige GUIs mit wxWidgets.
Antworten
feldmaus
User
Beiträge: 284
Registriert: Donnerstag 12. Oktober 2006, 16:48

Hallo Leute,

ich habe da eine Verständnis Frage zu RadioButtons. In meiner Applikation
nutze ich 2 RadioButtons, wovon einer beim Start des Programmes aktiviert
wird. Nun habe ich am Ende der __init__ Methode eine Abfrage mit
IsChecked(). Je nachdem welcher Button aktiviert ist soll die entsprechende
Applikation gestartet werden.

Hier ein Codeschnippsel:

Code: Alles auswählen

        self.file = wx.Menu()
        self.analysis = wx.Menu()

        transient = wx.MenuItem(self.analysis,201,'&Transient Analyse',
                                        'Show the peak appearance depending on the time.',
                                        kind=wx.ITEM_RADIO)
        self.Bind(wx.EVT_MENU, self.changeAnalysis, transient)
        histogram = wx.MenuItem(self.analysis,202,'& Histogram Analyse',
                                         'Show the amplitude appearance of the peaks depending on time in a 1/50Hz raster.',
                                         kind=wx.ITEM_RADIO)

        self.file.AppendItem(quit)
        self.file.AppendItem(saveall)
        self.transmenuid = self.analysis.AppendItem(transient)
        self.histmenuid = self.analysis.AppendItem(histogram)

        menubar = wx.MenuBar()
        menubar.Append(self.file, '&File')
        menubar.Append(self.analysis, '&Analysis')
        self.SetMenuBar(menubar) 

        #Set default Analysis
        self.transmenuid.Check(True)

        if self.transmenuid.IsChecked():
            self.drawtransient(min,self.maxitems)
        elif sel.histmenuid.IsChecked():
            self.drawhistogram(min,self.maxitems)
Fehler gibt er nicht raus, aber die erste if Anweisung ist immer True.

Warum ?

Grüße Markus
Benutzeravatar
C4S3
User
Beiträge: 292
Registriert: Donnerstag 21. September 2006, 10:07
Wohnort: Oberösterreich

Hallo!

Ein mehr lauffähiger Codeschnipsel (ohne dass man da jetzt drum herum bauen muss), wäre mir ganz recht, da ich in Eile bin.

Was mir aber so schon ein wenig übel aufstößt:

Code: Alles auswählen

self.file = wx.Menu()
Ich nehme an, du meinst das Menü "Datei" und hast es richtig in Englisch benannt. Aber "file" ist ist auch ein Python-Objekt.
Ein

Code: Alles auswählen

self.mnuFile = wx.Menu()
oder etwas Ähnliches wäre imho besser.
Sieht man ja hier im Highlighting, dass etwas nicht ganz stimmt.
Gruß!
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

``mnu`` als Prefix ist... komisch. ``self.file_menu`` ist nicht zu lang und dennoch lesbar.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

@feldmann_markus: In Zeile 23 setzt Du den Menüpunkt auf "checked" und wunderst Dich jetzt ernsthaft, dass er das zwei Zeilen später natürlich immer noch ist!? Oder übersehe ich da jetzt was!?
feldmaus
User
Beiträge: 284
Registriert: Donnerstag 12. Oktober 2006, 16:48

Vielen Dank erstmal allen für die Antworten. Ich könnte schwören das...
Anscheinend funktioniert es jetzt.

@BlackJack
Ich hatte in meinem Code in Zeile 23 aber folgendes stehen,

Code: Alles auswählen

self.histmenuid.Check(True)
Ok vielleicht habe ich durch das ständige sitzen am PC schon einen Knick in der Optik. :-)

@C4S3
Das mit self.file ist mir erst hier im Forum aufgefallen, da es hier in
blau markiert wurde. :-) Geändert.

Grüße Markus
Antworten