• 5052阅读
  • 2回复

[提问]QT主线程与子线程数据共享的问题? [复制链接]

上一主题 下一主题
离线6069205
 

只看楼主 倒序阅读 楼主  发表于: 2014-05-17
QT中怎么让程序一部分在子线程执行,并且能够共享主线程中的所有数据,就是我主线中定义的数据,子线程怎样才可以直接用?
求大侠解救我于水深火热之中啊。
QT chu xue zhe...
离线realfan

只看该作者 1楼 发表于: 2014-05-17
创建子线程类时,将主窗口类指针传过去(可以自己加个参数,也可以传给parent)。这样就可以在子线程中,通过指针访问到主窗口类的数据了。但要注意数据要加锁保护。
class MyThread : public QThread
{
    Q_OBJECT
public:
    explicit MyThread(QObject *parent = 0);
protected:
    void run()
    {
        MyMainWindow * pWnd = (MyMainWindow*)(this->parent());
        pWnd->data1.....
    }

}

只看该作者 2楼 发表于: 2014-05-17
set方法应该学过吧,将主线程的数据设置到QThread中,在run方法中就可以使用了。调用QThread.start就可以!
博客地址:https://waleon.blog.csdn.net
微信公众号:高效程序员
QQ 群:242790253
微信群:加微信(iwaleon),邀请入群。

承接各种 C++/Qt/QML 项目,专业的团队,一流的服务,不二的选择!
快速回复
限100 字节
 
上一个 下一个