Qt Thread - Signal Problem

Alles rund um die Programmierung mit Qt
Antworten
Murrad
Beiträge: 2
Registriert: 27. April 2007 07:56

Qt Thread - Signal Problem

Beitrag von Murrad »

Hallo, ich habe ein Problem mit Qt Threads.

Ich möchte mir den status auf der statusBar ausgeben, das signal wird auch gesendet, aber die Nachricht erscheint nicht auf der statusBar.

Hat jemand ne Idee?


Die Thread Klasse:

Code: Alles auswählen


#include <QThread>
#include "v24tools.h"

class myThread: public QThread
{
Q_OBJECT
public:
	myThread(QObject *parent = 0);
	~myThread();

	void communicate();

public slots:
	void starteInit();

protected:
	void run();

private:
	QString text;
	int status;


signals:
	void statusSenden(const QString &text);
};
die Methode starteInit, welche die nachricht rausschickt:

Code: Alles auswählen

void myThread::starteInit()
{
	if(0 == status)
	{
		char tempText[100];
		sprintf(tempText, "status1");
		text = tempText;
		emit statusSenden(text);

		status = 1;
		this->start();
	}
}

und hier der connect Befehl:

Code: Alles auswählen


	ui.setupUi(this);

	thread1 = new myThread();

	QObject::connect(thread1 , SIGNAL(statusSenden(const QString &)), ui.statusBar, SLOT(messageChanged(const QString &)));
[/code]
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Ist das Signal überhaupt verbunden? (Konsolenfehlermedlung event.?)
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Btw. woher weist du, daß das Signal gesendet wird, hast du das mit einem anderem Slot überprüft?
Murrad
Beiträge: 2
Registriert: 27. April 2007 07:56

Beitrag von Murrad »

hab den fehler entdeckt:

hab den falschen slot von der statusBar benutzt
SLOT(messageChanged(const QString &)));
anstatt SLOT(showMessage(const QString &)));


danke trotzdem für die schnellen antworten
Antworten