Seite 1 von 1

Qt Thread - Signal Problem

Verfasst: 27. April 2007 08:06
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]

Verfasst: 27. April 2007 09:12
von upsala
Ist das Signal überhaupt verbunden? (Konsolenfehlermedlung event.?)

Verfasst: 27. April 2007 09:13
von upsala
Btw. woher weist du, daß das Signal gesendet wird, hast du das mit einem anderem Slot überprüft?

Verfasst: 27. April 2007 09:26
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