Seite 1 von 1

RadioButton IsChecked frage

Verfasst: Donnerstag 18. Juni 2009, 09:52
von feldmaus
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

Verfasst: Donnerstag 18. Juni 2009, 11:15
von C4S3
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.

Verfasst: Donnerstag 18. Juni 2009, 12:21
von Leonidas
``mnu`` als Prefix ist... komisch. ``self.file_menu`` ist nicht zu lang und dennoch lesbar.

Verfasst: Donnerstag 18. Juni 2009, 12:46
von 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!?

Verfasst: Donnerstag 18. Juni 2009, 13:35
von feldmaus
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