I want to pass a QString to a thread.Using this answer,
Here is my 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 it seems getfrom_main is not called at all.
Where is my mistake?
EDIT:
I have 3 similar threads like 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 always executes in all my threads.but not about getfrom_main.Thanks.
 
     
    