c++ - QT : Passing QString to QThread -


i want pass qstring thread.using this answer, here code: in mainwindow.cpp:

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); 

but seems getfrom_main not called @ all. mistake?

edit:

i have 3 similar threads this:

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 executes in threads.but not getfrom_main.thanks.

wrong:

mythread :: mythread() {     movetothread(this); // don't need } 

wrong (you don't need inherit qthread in code):

void mythread::run() {     //something1     // after "something" need run event loop:     exec(); } 

exec() run event loop process signals , slots.


Comments

Popular posts from this blog

Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12:test (default-test) on project.Error occurred in starting fork -

windows - Debug iNetMgr.exe unhandle exception System.Management.Automation.CmdletInvocationException -

configurationsection - activeMq-5.13.3 setup configurations for wildfly 10.0.0 -