Seite 1 von 1

QComboBox slot verbinden klappt nicht

Verfasst: 3. Oktober 2007 21:34
von pospiech
bei folgendem Code passiert gar nichts wenn ich die Auswahl in der Combobox ändere. Was ist falsch?

Code: Alles auswählen

#include "Ui_NewPhaseObjectDialog.h"

class NewPhaseObjectDialog : public QDialog, protected Ui_NewPhaseObjectDialog
{
	Q_OBJECT
public:
	NewPhaseObjectDialog(QWidget* parent = 0, Qt::WFlags flags = 0);
	virtual ~NewPhaseObjectDialog();
private slots:
	void BoxPhaseMaskTypeChanged(int value);
	
private:
	void InitUi();
	void ConnectSignals();

};

Code: Alles auswählen

#include "NewPhaseObjectDialog.h"

NewPhaseObjectDialog::NewPhaseObjectDialog(QWidget* parent /*= 0*/, Qt::WFlags flags /*= 0*/) : QDialog(parent, flags)
{
	setupUi(this);
	InitUi();
	ConnectSignals();
}


NewPhaseObjectDialog::~NewPhaseObjectDialog()
{
}

void NewPhaseObjectDialog::InitUi()
{
	cBoxPhaseMaskType->clear();
	cBoxPhaseMaskType->addItem(tr("Fresnel Lens"));
	cBoxPhaseMaskType->addItem(tr("Grating"));
	cBoxPhaseMaskType->addItem(tr("IFTA (Iterative Fourier Transform Algorithm)"));
	cBoxPhaseMaskType->addItem(tr("Geometric Shapes (Raytracing Calculations)"));
}

void NewPhaseObjectDialog::ConnectSignals()
{
	connect(cBoxPhaseMaskType, SIGNAL(activated(int)), this, SLOT(BoxPhaseMaskTypeChanged(int)));
}

void NewPhaseObjectDialog::BoxPhaseMaskTypeChanged(int value)
{
	QString buffer = cBoxPhaseMaskType->itemText(value);
	lineEditDescription->setText(buffer);
}
Matthias[/code]

Verfasst: 3. Oktober 2007 22:31
von CaptnChaos
probiers mal mit dem signal:

Code: Alles auswählen

currentIndexChanged(int)

Verfasst: 3. Oktober 2007 23:00
von pospiech
Wo ist denn der Unterschied?

Jetzt steht da

Code: Alles auswählen

connect(cBoxPhaseMaskType, SIGNAL(currentIndexChanged(int)), this, SLOT(BoxPhaseMaskTypeChanged(int)));
aber passieren tut noch immer nichts. Das Programm landet nie in der Funktion BoxPhaseMaskTypeChanged.

Matthias

Verfasst: 4. Oktober 2007 06:28
von Christian81
Programm von der Konsole starten und auf die Ausgaben von Qt schauen.

Verfasst: 7. Oktober 2007 12:18
von pospiech
Christian81 hat geschrieben:Programm von der Konsole starten und auf die Ausgaben von Qt schauen.
Das liefert mir
Object::connect: No such slot NewPhaseObjectDialog::BoxDimensionsChanged(int)
Object::connect: (sender name: 'cBoxDimensions')
Object::connect: (receiver name: 'NewPhaseObjectDialog')
Object::connect: No such slot NewPhaseObjectDialog::BoxSizesChanged(int)
Object::connect: (sender name: 'cBoxSizes')
Object::connect: (receiver name: 'NewPhaseObjectDialog')
Object::connect: No such slot NewPhaseObjectDialog::BoxPhaseMaskTypeChanged(int)

Object::connect: (sender name: 'cBoxPhaseMaskType')
Object::connect: (receiver name: 'NewPhaseObjectDialog')
was ich aber nicht verstehe, da ich die Funktionen doch als slot definiert habe

Matthias