QRadioButton in QGroupBox und das alte selected()

Alles rund um die Programmierung mit Qt
Antworten
alike
Beiträge: 14
Registriert: 23. September 2005 10:56
Kontaktdaten:

QRadioButton in QGroupBox und das alte selected()

Beitrag von alike »

Hi ihr,

ich überarbeite grad ein Programm, dass noch auf Qt2
basiert. in dem wird die selected()-Funktion von Q3ButtonGroup
verwendet, um herauszufinden, welcher RadioButton selektiert ist.

In Qt4 gibt es diese QButtonGroup so nicht mehr, hab sie
deshalb durch qGroupBox ersetzt, wie in der Porting-Doku
angegeben. In QGroupBox gibt es die selected()-Funktion nicht
mehr, daher wollte ich fragen, ob es eine elegantere Variante gibt
auf den selected status der RadioButtons zuzugreifen
als über QGroupBox->children()....

mfg

aLiKe
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Re: QRadioButton in QGroupBox und das alte selected()

Beitrag von macman »

Qt-Doku sagt:
QAbstractButton * QButtonGroup::checkedButton () const
Returns the button group's checked button, or 0 if no buttons are checked.

Das war es doch was Du suchst, oder? :)
alike
Beiträge: 14
Registriert: 23. September 2005 10:56
Kontaktdaten:

Beitrag von alike »

Nope, ich muss für mein Prog schon
QGroupBox verwenden, da QButtonGroup
seit Qt4 kein QWidget mehr ist.
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Da ist Handarbeit gefragt,

radioBtn1 -> isChecked();
radioBtn2 -> isChecked();
radioBtn3 -> isChecked();

damit findest du in der GroupBox heraus, welcher Button gedrückt ist. Unter Qt4 wurde GroupBox und ButtonGroup zusammengefügt, da es eigentlich beides das gleiche ist.
alike
Beiträge: 14
Registriert: 23. September 2005 10:56
Kontaktdaten:

Beitrag von alike »

Also doch Handarbeit, schade.
Nagut^^ Dann ist das hier gelöst;)

Danke für die Antwort
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Ich weiß nicht warum du die Buttons nicht einfach in eine QButtonGroup packst? Das hat doch keine Auswirkungen auf die Buttons selbst, außer das Du dann ein weiteres Signal hast, welcher Button nun geklickt wurde, mit dem übergebenen Button, und Du abfragen kannst, welcher Button gecheckt ist. Es ist halt nur ein Container um dir diese Funktionen zur Verfügung zu stellen, visuell ohne Wirkung. Oder überseh ich da was?
alike
Beiträge: 14
Registriert: 23. September 2005 10:56
Kontaktdaten:

Beitrag von alike »

Das problem ist die "Umgebung" von QGroupBox.
Ich brauche da immer QWidgets, und da QButtonGroup
in Qt4 wiegesagt kein QWidget mehr ist, muss ich
die QGroupBox nehmen.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Ich meine das so:

Code: Alles auswählen

	QButtonGroup* bg = new QButtonGroup(myGroupBox);
	bg->addButton(firstButton);
	bg->addButton(nextButton);
	bg->addButton(nextButton);
Du hast deine Buttons ganz normal in der GroupBox und zusätzlich in der ButtonGroup. Du kannst sie natürlich auch per QGroupBox->children() in eine QList packen und dann einzeln durchklappern :), wobei ich jedoch vermute, das QButtonGroup auch nur eine erweiterte QList ist.
alike
Beiträge: 14
Registriert: 23. September 2005 10:56
Kontaktdaten:

Beitrag von alike »

Mhhh, wäre Quasi ne art Lösung, joa...

Mhhh.... Werd ich mal drübe rnachdenken^^
Aber mit dem einzeln durchklappern fahr ich momentan auch ganz
gut:D
Antworten