[gelöst][QT4.1] Problem mit QRadioButton
Verfasst: 25. Januar 2006 23:07
Moin,
ich möchte abhängig von einem übergebenen Wert 32 Radiobuttons "schalten". Hier mal der Quelltext dazu:
In status steht der aktuelle Status der Radiobuttons. In value der neue Wert. Per exclusivem ODER werden diese beiden Variablen verknüpft und der Variablen change zugewiesen. In einer Schleife wird nur dann eine Aktion gemacht, wenn sich in value ein Bit geändert hat (dann ist an dieser Position in change das Bit auf 1).
Das funktioniert mit der Bitoperation auch wunderbar. ABER:
Ich kann auf diesem Wege die Radiobuttons "einschalten", aber nicht wieder ausschalten. radioButton->setChecked(false) bleibt ohne Wirkung. Wenn ich allerdings mit der Maus über die RadioButtons drüberherfahre (ohne Klicken), dann ändern Sie sich.
Eigentlich missbrauche ich hier die Radiobuttons zur Statusanzeige. Mir ist aber kein anderes Object in die Finger gefallen. Hat jemand ne Idee, wie ich das Problem lösen kann?
Ich möchte in einem Dialog den Status von 32 IO Pins einer USB Karte anzeigen.
ich möchte abhängig von einem übergebenen Wert 32 Radiobuttons "schalten". Hier mal der Quelltext dazu:
Code: Alles auswählen
bool Modultest::changeGUI(unsigned long value){
change = status ^ value;
for(int i=0; i<32; i++){
if(change & (1<<i)){
fprintf(stderr,"%x %d - ",change, i);
radioButton[i]->setCheckable(true);
if(value & (1<<i)){
fprintf(stderr,"true\n");
radioButton[i]->setChecked(true);
}else{
fprintf(stderr,"false\n");
radioButton[i]->setChecked(false);
}
radioButton[i]->setCheckable(false);
}
}
status = value;
return true;
}Das funktioniert mit der Bitoperation auch wunderbar. ABER:
Ich kann auf diesem Wege die Radiobuttons "einschalten", aber nicht wieder ausschalten. radioButton->setChecked(false) bleibt ohne Wirkung. Wenn ich allerdings mit der Maus über die RadioButtons drüberherfahre (ohne Klicken), dann ändern Sie sich.
Eigentlich missbrauche ich hier die Radiobuttons zur Statusanzeige. Mir ist aber kein anderes Object in die Finger gefallen. Hat jemand ne Idee, wie ich das Problem lösen kann?
Ich möchte in einem Dialog den Status von 32 IO Pins einer USB Karte anzeigen.