查看完整版本: [-- QT主线程与子线程数据共享的问题? --]

QTCN开发网 -> 《C++ GUI Qt 4编程》(第2版)专栏 -> QT主线程与子线程数据共享的问题? [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

6069205 2014-05-17 09:46

QT主线程与子线程数据共享的问题?

QT中怎么让程序一部分在子线程中执行,并且能够共享主线程中的所有数据,就是我主线中定义的数据,子线程怎样才可以直接用?
求大侠解救我于水深火热之中啊。

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

}

一去丶二三里 2014-05-17 12:38
set方法应该学过吧,将主线程的数据设置到QThread中,在run方法中就可以使用了。调用QThread.start就可以!


查看完整版本: [-- QT主线程与子线程数据共享的问题? --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled