Seite 1 von 1
Radiobuttons sind nicht exclusiv
Verfasst: 27. April 2008 11:23
von pospiech
Ich habe zwei Radiobuttons in einem QGridLayout gruppiert. Beide haben die Eigenschaft 'autoExclusiv = true', aber sie sind nicht exclusiv. d.h. man kan sie beide anwählen und beide abwählen als hätten sie nichts miteinander zu tun.
Was mache ich falsch?
Verfasst: 27. April 2008 11:24
von upsala
Füge beide zu einer QButtonGroup hinzu
Verfasst: 27. April 2008 11:27
von pospiech
upsala hat geschrieben:Füge beide zu einer QButtonGroup hinzu
Den Hinweis habe ich auch in der Doku gesehen, aber finde das Element nicht im Designer.
Verfasst: 27. April 2008 11:34
von upsala
99% der Qt-Klassen sind nicht im Designer zu finden...
Verfasst: 27. April 2008 11:49
von pospiech
upsala hat geschrieben:99% der Qt-Klassen sind nicht im Designer zu finden...
Das ist mir schon klar. Nur soll ich jetzt den Designer wegwerfen und alles per Hand coden? Ich suche eine Lösung eine QButtonGroup zu verwenden UND den Designer zu verwenden.
Sollte ich das visuelle Designen wirklich vergessen dürfen, würde ich mich über ein Quellcode Beispiel freuen, da
http://doc.trolltech.com/4.3/qbuttongroup.html kein Beispiel enthält.
Oder muss ich einfach nur eine qbuttongroup definieren und die radiobuttons da hinzufügen, egal wie diese in irgentwelchen Layouts eingebettet sind?
Verfasst: 27. April 2008 12:20
von pospiech
pospiech hat geschrieben:
Oder muss ich einfach nur eine qbuttongroup definieren und die radiobuttons da hinzufügen, egal wie diese in irgentwelchen Layouts eingebettet sind?
offensichtlich nicht, denn ein
Code: Alles auswählen
setupUi(this);
buttongroup->addButton(radioButtonNoFFT);
buttongroup->addButton(radioButtonFFT);
führt dazu das die Applikation abstützt.
Würde mich über ein erklärendes Beispiel sehr freuen.
Verfasst: 27. April 2008 13:58
von pospiech
Wenn ich nun alles per Hand code, dann stehe ich vor dem Problem das mir nicht klar ist wie ich die QButtonGroup einem Layout hinzufüge. Denn Ein Layout erwartet ein widget, welches QButtonGroup nicht ist.
Hier mein bisheriger Code:
Code: Alles auswählen
radioButtonNoFFT = new QRadioButton(this);
radioButtonNoFFT->setObjectName(QString::fromUtf8("radioButtonNoFFT"));
radioButtonNoFFT->setChecked(true);
radioButtonFFT = new QRadioButton(this);
radioButtonFFT->setObjectName(QString::fromUtf8("radioButtonFFT"));
buttongroup = new QButtonGroup(this);
buttongroup->addButton(radioButtonNoFFT);
buttongroup->addButton(radioButtonFFT);
gridLayoutButtonGroup = new QGridLayout(this);
gridLayoutButtonGroup->setObjectName(QString::fromUtf8("gridLayoutButtonGroup"));
gridLayoutButtonGroup->addWidget(buttongroup);
gridLayout->addLayout(gridLayoutButtonGroup, 1, 0, 1, 1);
Verfasst: 27. April 2008 16:02
von upsala
Wenn ich im Designer im RadioButtons hinzufüge und die das selbe Widget als Parent besitzen, sind sie automatisch exklusiv.
Ansonsten, brauchst du die QButtonGroup nicht einem Layout zuzuordnen, da das nichts mit Layouts zu tun hat.
Und den Absturz des ersten Codes würde ich mit einem Debugger mal betrachten.
Im Code wird FFT erwähnt. Wenn damit Fourier gemeint ist, hast du dafür fertigen Code für Qt?
Verfasst: 27. April 2008 17:28
von pospiech
Ich habe inzwischen herausgefunden, dass ein
Code: Alles auswählen
buttongroup = new QButtonGroup(this);
buttongroup->addButton(radioButtonNoFFT);
buttongroup->addButton(radioButtonFFT);
ausreicht. Das Abstürzen war mein Fehler. Leider muss ich aber auch sagen, dass die Doku von Trolltech in diesem Punkt unzureichend ist da genau dieses Beispiel fehlt.
Zur FFT, ich benutze FFTW und habe mir einen Wrapper dafür geschrieben, der derzeit von Qt abhängt (QString, QFile, QSettings) wobei es dabei nur zum Speichern und Laden von Optimierungseinstellungen genutzt wird. Die Rechnungen sind Toolkit unabhängig.
Meinen derzeitigen Code habe ich angehangen.