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

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

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?(用回调函数?)

时间: 2024-10-12 10:22:38

QThread调用外部子函数怎么将信息emit的相关文章

UFT脚本调用外部VBS函数的三种方法

第一种方法:ExecuteFile,利用该函数将外部vbs动态地加载进来,使测试脚本可以调用vbs文件的所有函数,调用语句写在下方,顺序不能颠倒,否则会报错.这个方法适用于QTP任何版本,但有个缺点,代码调试时不能跟踪到外部vbs的函数中,多少有些不便. ExecuteFile File File  String  The absolute or relative path of the file to execute. Example: ExecuteFile "c:\out.vbs"

easyui 弹出框调用外部js函数 提示“Microsoft JScript 运行时错误: 缺少对象”

昨天遇见一个很诡异的问题 我用easyui做了一个网站,其中有一个a页面和一个b页面,我通过easyui的window功能,在a页面中弹出了一个b页面,在b页面中,我用到了一个外部js的函数c,我在b页面中我也引用了这个js文件,但是每次js代码走到函数c时,就是提示“Microsoft JScript 运行时错误: 缺少对象”,明明引用了js,为什么还提示没有对象呢?真是活见鬼了,结果折腾了好长一段时间后,我才猛然发现,原来easyui的弹出框其实就是个div,b页面就相当于是嵌入到b页面中的

匿名函数,子函数,私有函数,重载函数,eval和feval函数

匿名函数,子函数,私有函数等函数类型 匿名函数: 匿名函数没有函数名,也不是.m文件,只包含一个表达式和输入输出参数. [email protected](x,y)x.^y+3*x*y x,y为输入输入参数,Fxy为函数名 子函数: 在 Matlab中, 多个函数写入一个.m文件中.其中出现的第一个函数称为主函数,其他函数称为子函数,保存时文件名与主函数名相同,外部程序只能调用主函数. 特点: 子函数只能被同一文件下的其他函数调用 通过名称调用函数时优先调用子函数,再调用内置函数. 同一文件的主

matlab调试时子函数断点不起作用

matlab调试代码时总是遇到这样一个奇怪的问题,就是当我在主程序(.m脚本)中调用子函数并在子函数中设置断点,然后开始调试运行主程序... 发现主程序直接运行到结束而并没有在调用子函数的时候在所设置的断点处停下来,而且所设置的断点也被清除... 但是如果在主程序中调用相应子函数的地方设置断点,调试时在此处停一下然后在继续运行则可以在子函数中的断点停下... 这个问题困扰我挺长时间,虽然用第二种方法能够实现需要的调试功能,但是总是要在主程序停一下,有点麻烦 so, 有事问谷歌--you get

webBrowser调用外部js文件和js函数(转载)

原文链接:http://fy5388.blog.163.com/blog/static/56499537201012594314130/ webBrowser调用外部js文件和js函数 '第一种方法:webbrowser动态调用html和js代码,都是动态的:代码示例: webBrowser1.Navigate("about:blank");webBrowser1.Document.OpenNew(True);webBrowser1.Document.Write("<H

JQuery调用iframe子页面函数/对象的方法例子

父页面有个ID为mainfrm.name为Iframe1的iframe,iframe连接b.html,该页面有个函数test 在父页面调用b.html的test方法为: $("#mainfrm")[0].contentWindow.test(); 或者 this.frames["Iframe1"].doQuery(); 在当前弹出的子页面中打开另一个打开页面中的函数,例如在弹出的edit.html页面中调用dataList.html页面中的函数test parent

How to:如何在调用外部文件时调试文件路径(常见于使用LaunchAppAndWait和LaunchApp函数)

原文:How to:如何在调用外部文件时调试文件路径(常见于使用LaunchAppAndWait和LaunchApp函数) IS里调用外部文件的时候,一般都是用LaunchAppAndWait函数,比如 if(LaunchAppAndWait (SRCDISK^"jdk\\jdk-6u4-windows-i586-p.exe","", LAAW_OPTION_WAIT)<0)then MessageBox ("You haven't installe

函数里面有函数叫函数的闭包:子函数可以调用父函数变量,如果子函数找不到变量,那么整条作用域链的变量都会被保存

1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <title>无标题文档</title> 6 <script> 7 //作用域 8 var a=0; 9 10 function abc(){ 11 var a=1; 1

MATLAB 嵌套函数,子函数,私有函数,重载函数

MATLAB 函数嵌套 MATLAB中M文件有两种类型,脚本M文件和函数M文件.脚本M文件是将可执行程序语句放入M文件中,就像在命令窗口那样,按其语句顺序及逻辑关系执行,可以理解为一般的顺序执行程序语句.函数文件一般是声明一个函数,方便以后操作中的调用.下面就函数文件中函数嵌套的使用做简单分析. 对于函数文件,一个M文件只能定义一个总函数,即第一句function所定义的函数,而且整个M文件在外部使用时候表现出来的也只有这一个函数.如果需要多个函数嵌套,与其定义顺序无关.下面结合一个简单的例子来