Seite 1 von 1

gelöst: Radiobutton lässt sich nicht umschalten

Verfasst: 28. Dezember 2009 16:51
von qtNiko
hi,
ich habe zwei Radiobuttons, radioButt_outbin und radioButt_outasc, in einer Groupbox. In der Groupbox befinden sich auch noch weitere Buttons. Die beiden Radiobuttons haben enabled=true, checkable=true und autoExclusive=true.

Die Bedienung per Mouse klappt wie gewünscht, d.h. ich kann den einen anklicken, und der andere geht dann aus.

Das gleiche möchte ich nun programmiert machen. Welcher der beiden Radiobuttons eingeschaltet sein soll, steht in einer Konfigurationsdatei. Den Wert (0 oder 1) lese ich in ein QString resStr ein und schalte den entsprechenden Knopf ein:

Code: Alles auswählen

if (resStr.toInt() == 1) radioButt_outbin->click();
				else radioButt_outascii->click();
Die Radiobuttons bleiben jedoch auf der Defaulteinstellung (radioButt_outbin ein, radioButt_outasc aus) stehen, obwohl eine 0 eingelesen wird und damit umgeschaltet werden müsste.

Was mache ich falsch?

-------------
Lösung:
Das Problem lag daran, dass neben den beiden QRadioButton noch andere Knöpfe (QCheckBox, QLineEdit) nicht exklusiv in der Groupbox enthalten waren.
Nachdem ich die beiden QRadioButton in eine eigene Groupbox gepackt habe, klappt es.

Vielen Dank für die Tipps.

Radiobutton lässt sich nicht umschalten

Verfasst: 28. Dezember 2009 19:44
von sowas
Hallo,
radiobutton muss du wie pushbutton behandeln, sie senden signale und du mss die slots einwickeln.
tschüss
bk

Verfasst: 28. Dezember 2009 20:14
von upsala
@sowas: wie meinen?

Zum einen solltest du setChecked(true) verwenden, zum anderen, wenn du schon schreibst 'sollte' dann solltest du dies auch mal mit dem Debugger überprüfen.

Radiobutton lässt sich nicht umschalten

Verfasst: 28. Dezember 2009 23:00
von sowas
ich hab was falsches gesagt .
unter ../examples/dialogs/licensewizard zeigt Trolltech wie man radiobuttons anwenden kann.
tschüss bk

Verfasst: 28. Dezember 2009 23:37
von honda71
Man könnte das so abbilden:

Code: Alles auswählen

radioButt_outbin->setChecked(resStr.toInt()==1);
radioButt_outascii->setChecked(resStr.toInt()!=1);
Grüsse

Verfasst: 29. Dezember 2009 08:54
von upsala

Code: Alles auswählen

QRadioButton *radioButt_outBin=new QRadioButton();
QRadioButton *radioButt_outAscii=new QRadioButton();
QButtonGroup *group=new QButtonGroup();
group->addButton(radioButt_outBin, 0);
group->addButton(radioButt_outAscii, 1);

group->button(resStr.toInt())->setChecked(true);
Wäre auch noch eine Möglichkeit...