QComboBox slot verbinden klappt nicht

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

QComboBox slot verbinden klappt nicht

Beitrag 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]
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

probiers mal mit dem signal:

Code: Alles auswählen

currentIndexChanged(int)
pospiech
Beiträge: 232
Registriert: 1. September 2006 17:20
Wohnort: Hannover

Beitrag 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
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Programm von der Konsole starten und auf die Ausgaben von Qt schauen.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
pospiech
Beiträge: 232
Registriert: 1. September 2006 17:20
Wohnort: Hannover

Beitrag 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
Antworten