Code: Alles auswählen
class MyThread : public QThread
{
Q_OBJECT
public slots:
void myThreadSlot() {
qDebug() << "Slot";
}
signals:
void myThreadSignal();
private:
void run() {
emit myThreadSignal();
exec();
}
};
Code: Alles auswählen
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
MyThread *myThread = new MyThread();
QObject::connect(myThread, SIGNAL(myThreadSignal()), myThread2, SLOT(myThreadSlot()), Qt::QueuedConnection);
myThread->start();
a.exec();
delete myThread;
}
Wenn ich allerdings an dem qDebug() << "Slot" einen breakpoint setzte und mir den aufrufsteak anschaue, geht der aufruf von QCoreApp::run und nicht von MyThread::run aus.
Wie kann das sein und was muss ich anders machen damit der slot in MyThread läuft?