码迷,mamicode.com
首页 > 其他好文 > 详细

QThread调用外部子函数怎么将信息emit

时间:2015-06-24 15:51:33      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:

产生一个子线程,遍历文件夹,然后将信息打印在主界面上。

1.子类化QThread可以产生一个新的线程,重构虚函数run()。子线程和主线程的通信是利用signal-slot机制,子线程将信息通过emit signal(“信息”)发送给主线程

class NewThread : public QThread

{  Q_OBJECT

public: NewThread(const QString strval)  {   filepath=strval;  };

protected:  void run(); 

private:  QString filepath;

signals:  void TestSignal(QString);

};

void NewThread::run() {  

wchar_t path[260]={0};  

filepath.toWCharArray(path);

 emit TestSignal(filepath);  }

2.主线程中先产生thread类,然后运行,在connect,在slot函数中对接收到的信息进行处理。

NewThread *playthread = new NewThread((const QString )s.path());
 playthread->start();
 connect(playthread, SIGNAL(TestSignal(QString)),this, SLOT(GetInfo(QString)));

3.在子线程中调用外部子函数,但是emit机制在外部函数中是不能使用的,怎样将子函数中的信息再传给子线程中emit?(用回调函数?)

QThread调用外部子函数怎么将信息emit

标签:

原文地址:http://www.cnblogs.com/singlebutterfly/p/4597707.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!