[gelöst] Radiobutton um Entrys zu steuern

Plattformunabhängige GUIs mit wxWidgets.
Antworten
mathi
User
Beiträge: 314
Registriert: Dienstag 27. November 2007, 14:30

Neues Thema -> neue Hürden,

ich möchte mit einem RadioButton meine Widgets auf dem Panel (Child) steuern.

Alles soll in einer Klasse zusammengefasst werden. Ich habe nun das Problem, dass

1. sehen die entstehenden Elemente komisch aus
2. geschieht alles additiv und nicht exklusiv

Die Idee verschiedene Panels zu benutzen habe ich erstmal verworfen (für mich zu schwierig), obwohl das ja sicher die beste Variante wäre.
(http://www.python-forum.de/topic-12484. ... s+attribut hier wurde eine Beispiel mittels Klassen dargestellt, aber das in eine Klasse zu packen, pack ich schon nicht)


CODE AUSGELAGERT: http://paste.pocoo.org/show/91582/


Edit by Gerold: Code ausgelagert
Zuletzt geändert von mathi am Dienstag 18. November 2008, 13:41, insgesamt 1-mal geändert.
mathi
User
Beiträge: 314
Registriert: Dienstag 27. November 2007, 14:30

also die Frage ist ja, ist der Weg generell erst einmal richtig??
Wenn ja, bräuchte ich doch nur noch die Entrys und Texte löschen, die zur vorherigen Buttonauswahl gehören, und dann die zur neuen Auswahl gehörenden einzufügen, oder?

Falls der Weg generell falsch ist (die GUI auf diese Art zu verändern, in welche Richtung müßte ich denken?? Doch verschiedene Panels erstellen, nur um einige wenige Entrys zu verändern??

Gruß Mathi :)
BlackJack

Also ich würde es in Panels gruppieren und die Auswahl nicht über Radiobuttons machen, sondern über eines der "Book"-Controls.
Benutzeravatar
martin101986
User
Beiträge: 85
Registriert: Montag 3. Dezember 2007, 19:15
Wohnort: Steiermark, Österreich

Hallo,

deine Grafischen Komponenten werden so komisch dargestellt weil du beim Aufruf zur Erzeugung dieser nicht das Panel übergibst sondern den Frame selbst!

Daher befinden sich deine Komponenten auf deinen Frame.

Code: Alles auswählen


#richtig
def show_rb1(self, event):
        """
        Eventhandler für die RadioButtons zeigt die entspr. Widgets an.
        """
#Hier muss ein Panel übergeben werden, dann werden die Komponenten auf dem Panel platziert
        self.createEingabemaske1(wx.panel) 

Und ich würde wie BlackJack vorher gesagt hat in Panels unterteilen.

Grüße
Martin
mathi
User
Beiträge: 314
Registriert: Dienstag 27. November 2007, 14:30

Danke für Eure Antworten,

die Unterteilung in Panels stelle ich mir schwierig vor, da alle Widgets einen definierten Platz im Frame haben sollen?!?
Ich fürchte aber, ich habe einfach nur noch zu wenig Verständnis.

@BlackJack

Sind mit "Book"-Controls ->
wx.SingleChoiceDialog
Bild

oder eher wx.ComboBox
Bild



gemeint?? Ich denke ersteres, oder?
(Bilder aus www.wiki.wxpython.org)



Zur Vervollständigung:

o.g. Beispiel funktioniert mit:

Code: Alles auswählen

.
.
self.panel=panel
.
.
.
    def show_rb1(self, event): 
        """ 
        Eventhandler für die RadioButtons zeigt die entspr. Widgets an. 
        """ 
        self.createEingabemaske1(self.panel) 
.
.
.
.
BlackJack

Mit "Book"-Controls meinte ich die gleichnamige Rubrik in der wxPython-Demo, also die Widgets deren Namen mit `book` enden. `Choicebook`, `Listbook`, `Notebook`, etc.
mathi
User
Beiträge: 314
Registriert: Dienstag 27. November 2007, 14:30

@BlackJack
aha, danke. Notebook gefällt mir ganz gut :-)
mathi
User
Beiträge: 314
Registriert: Dienstag 27. November 2007, 14:30

(gelöscht wegen Dummheit)

mathi
Antworten