当前位置: 代码迷 >> QT开发 >> Qt线程之间通信的有关问题
  详细解决方案

Qt线程之间通信的有关问题

热度:350   发布时间:2016-04-25 02:52:00.0
Qt线程之间通信的问题
最近在学Qt5,在多线程的练习中,想实现把函数的值传到界面上。比如说
A()
{
        emit  send(str);
}
在线程类Mythread的run函数里调用。出现了一个很奇怪的现象,就是说,如果这个A()是在线程类Mythread实现的,就可以把信号发送到界面上,如果重新写一个C++类,A()在该类上实现,界面上就无法获取数据了。connect什么的都有写了。是不是在线程中调用的函数,只能是在该线程类实现才可以啊?  第一次发帖,说的不太清楚,请大神回答一下。

------解决思路----------------------
引用:
Quote: 引用:

connect(&mduser,SIGNAL(sendA(QString)),this,SLOT(reA(QString)));
mduser这个哪里来的??临时的吗


直接在主线程那个类里 new 一个mduser啊,这样有问题吗

主线程new的mduser和线程就没关系了吧,那就不是在线程中emit的信号,而是主线程的mduser发的emit的信号。
你这样或许可以:
connect(thread->mduser, SIGNAL(sendA(QString)), this, SLOT(reA(QString)));

  相关解决方案