QT中的线程
来源:互联网 发布:淘宝网信用评价体系 编辑:程序博客网 时间:2024/05/25 16:39
QT中的线程是不可以执行ui内容的,一般情况,执行逻辑运算就可以,
但是,如果让线程中用到ui,就需要用到 信号和槽 的机制了;
如果线程用到 信号和槽 ,线程的定义就需要放到主界面定义的文件中了(Q_OBJECT),否则编译出错;
部分代码如下:
#ifndef PROC_H
#define PROC_H
#include <QtGui/QMainWindow>
#include "ui_proc.h"
#include <QMessageBox>
//线程:
#include <QThread>
#include <QMessageBox>
class MYthread : public QThread
{
Q_OBJECT
public:
MYthread(){};
~MYthread(){};
protected :
void run()
{
FILE * f = fopen("A.txt","w+"); fclose(f);
for ( int i = 0; i<100; i++ )
{
sleep(1000);
signal1(); //当线程中的signal1()被调用,界面中的slot1()就相应;
}
}
signals:
void signal1(); //信号不需要具体实现;
//注意:QObject::connect( &pthr , SIGNAL(signal1()), this, SLOT(slot1())); 线程调用前要执行,可以放在相应ui的构造函数中;
};
class Proc : public QMainWindow
{
Q_OBJECT
public:
Proc(QWidget *parent = 0, Qt::WFlags flags = 0);
~Proc();
private:
Ui::ProcClass ui;
private slots:
void on_pushButton_2_clicked();
void on_pushButton_clicked();
void slot1() //当线程中的signal1()被调用,slot1()就相应;
{
QMessageBox::about(NULL,"","线程触发");
}
public:
MYthread pthr;
};
#endif // PROC_H
- Qt中的线程支持
- Qt中的线程支持
- Qt中的线程支持
- QT中的线程
- Qt中的线程
- QT中的线程QThread
- qt中的线程套路
- Qt中的线程池
- [翻译]QT中的线程支持
- QT中的进程和线程
- 理解QT线程中的moveToThread
- Qt线程中的一些关键字
- qt中的线程重入问题
- qt线程动态回调被调类中的函数
- 关于Qt线程中的事件循环
- Qt入门(9)——Qt中的线程支持
- Qt多线程编程中的对象线程与函数执行线程
- Qt多线程编程中的对象线程与函数执行线程
- %type %rowtype record table
- JAVA 多线程
- Javascript 局部变量
- 分析strcpy函数
- 【文档规范】需求分析报告 VS 需求说明书 VS 需求规格说明书
- QT中的线程
- [POJ]1422-Air Raid(最小路径覆盖)
- __asm__ __volatile__ GCC的内嵌汇编语法 AT&T汇编语言语法
- 栈和队列的不同
- 设置webview背景色
- win7安装64位oracle + pl/sql8
- 自定义控件重写TagName
- 销售成本与收入不在同一会计期间(一)
- PHP之一,国际惯例,Hello World!