Radiobuttons sind nicht exclusiv

Alles rund um die Programmierung mit Qt
Antworten
pospiech
Beiträge: 232
Registriert: 1. September 2006 17:20
Wohnort: Hannover

Radiobuttons sind nicht exclusiv

Beitrag 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?
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Füge beide zu einer QButtonGroup hinzu
pospiech
Beiträge: 232
Registriert: 1. September 2006 17:20
Wohnort: Hannover

Beitrag 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.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

99% der Qt-Klassen sind nicht im Designer zu finden...
pospiech
Beiträge: 232
Registriert: 1. September 2006 17:20
Wohnort: Hannover

Beitrag 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?
pospiech
Beiträge: 232
Registriert: 1. September 2006 17:20
Wohnort: Hannover

Beitrag 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.
pospiech
Beiträge: 232
Registriert: 1. September 2006 17:20
Wohnort: Hannover

Beitrag 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);
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag 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?
pospiech
Beiträge: 232
Registriert: 1. September 2006 17:20
Wohnort: Hannover

Beitrag 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.
Dateianhänge
QFFTW.h
(3.48 KiB) 103-mal heruntergeladen
QFFTW.cpp
(10.13 KiB) 97-mal heruntergeladen
Antworten