ich eine QString
auf eine thread.Using this Antwort übergeben wollen, ist Hier mein Code: in mainwindow.cpp:QT: Passing QString zu QThread
mmthread = new mythread;
mmthread->start();
connect(this,SIGNAL(sendtothread(QString)),mmthread,SLOT(getfrom_main(QString)),Qt::QueuedConnection);
emit sendtothread(mystr);
in mainwindow.h :
signals:
void sendtothread(QString);
in mythread.cpp:
void mythread::getfrom_main(QString str)
{
//something
}
in mythread.h:
public slots:
void getfrom_main(QString);
Aber es scheint getfrom_main
gar nicht aufgerufen wird. Wo ist mein Fehler?
EDIT:
Ich habe 3 ähnliche Fäden wie folgt aus:
in mythread.cpp:
mythread :: mythread()
{
moveToThread(this);
}
void mythread::run(){
//something1
}
void mythread::getfrom_main(QString comm)
{
comment = comm;
emit message(comment);
}
in mythread.h:
class mythread : public QThread
{
Q_OBJECT
public:
explicit mythread();
void run();
signals:
void message (QString);
private:
QString comment;
public slots:
void getfrom_main(QString);
};
something1
wird immer in allen meinen Threads ausgeführt. but not about getfrom_main
. Danke.
Haben Sie in beiden Klassen das Q_OBJECT-Makro? Ohne dieses Makro funktionieren Signale und Steckplätze nicht. – mtb
@ mtb Ja. beide Klassen! Ich habe ein Signal/Slot, um die Qstrings-Kommentare eines Threads durch eine QMessagebox im Hauptfenster anzuzeigen, und es funktioniert perfekt! –
Bitte zeigen Sie eine SSCCE: http://sscce.org/ –