最近在学Qt5,在多线程的练习中,想实现把函数的值传到界面上。比如说
A()
{
emit send(str);
}
在线程类Mythread的run函数里调用。出现了一个很奇怪的现象,就是说,如果这个A()是在线程类Mythread实现的,就可以把信号发送到界面上,如果重新写一个C++类,A()在该类上实现,界面上就无法获取数据了。connect什么的都有写了。是不是在线程中调用的函数,只能是在该线程类实现才可以啊? 第一次发帖,说的不太清楚,请大神回答一下。
------解决思路----------------------
主线程new的mduser和线程就没关系了吧,那就不是在线程中emit的信号,而是主线程的mduser发的emit的信号。
你这样或许可以:
connect(thread->mduser, SIGNAL(sendA(QString)), this, SLOT(reA(QString)));