[gelöst] QDialog mit RadioButtons



  • Hallöchen,

    ich möchte einen QDialog schreiben, in dem über Radiobuttons eine "Option" ausgewählt werden soll.

    Nun stellt sich mir die Frage, wie ich denn nun die ausgewählte Option vom Dialog bekomme?

    Aktuell baue ich den Dialog in einer Funktion, ich habe also keine eigene Klasse dafür.

    Der Code in der Funktion:

    QDialog* dialog = new QDialog(this);
        dialog->setModal(true);
    
        QVBoxLayout* dialogLayout = new QVBoxLayout;
        QRadioButton* rabUniverse;
        QPushButton* btnOK = new QPushButton("OK", dialog);
        QPushButton* btnCancel = new QPushButton("Abbrechen", dialog);
    
        for(int i=1; i <= 5; i++){ //5 = Anzahl der Optionen
            rabUniverse = new QRadioButton("Option " + QString::number(i), dialog);
            dialogLayout->addWidget(rabUniverse);
        }
    
        dialogLayout->addWidget(btnOK);
        dialogLayout->addWidget(btnCancel);
    
        dialog->setLayout(dialogLayout);
    

    Ich hoffe ihr könnt mir weiterhelfen.
    Entschuldigt bitte, dass ich sozusagen eine vorgefertigte Lösung haben möchte, aber ich weiß an der Stelle nicht weiter. (Muss ich einen Slot im Parentwidget aufrufen, kann ich den Wert "intern" im Dialog setzen und abfragen, kann mir eine Funktion den ausgewählten Wert zurückgeben,... Zu viele Möglichkeiten 😉 )

    Viele Grüße
    Cherup



  • Du musst isChecked von dem Radio Button abfragen. Wie du da ran kommst, ist eine andere Frage. Könntest dir die Radio Button Zeiger in einer Liste speichern, oder das Layout durchgehen und qobject_cast machen, oder einen Property auf den Objekten sezten, oder wie du geschrieben hast, einen SLOT aufrufen. Hast viele Möglichkeiten.



  • Danke, läuft.
    Hab in einem vector die Pointer auf die Radiobuttons gespeichert und nach dialog->exec() frage ich ab, welcher Button gesetzt wurde.


Log in to reply