博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转】Qt多线程操作界面---在QThread更新QProgressBar
阅读量:4944 次
发布时间:2019-06-11

本文共 1800 字,大约阅读时间需要 6 分钟。

#include 
#include
#include
#include
#include
class RenderThread : public QThread{ Q_OBJECTsignals: void notify(int);public: RenderThread(QObject *parent = 0): QThread(parent) { }; void test() { start(HighestPriority); };protected: void run() { int i =0; while (i<101) { msleep(50); i++; emit notify(i); } };};class MainWindow : public QMainWindow{ Q_OBJECTpublic: MainWindow(QWidget *parent = 0) { resize(600, 400); centralWidget = new QWidget(this); progressBar = new QProgressBar(centralWidget); progressBar->setGeometry(QRect(130, 180, 321, 23)); progressBar->setValue(0); pushButton = new QPushButton("test",centralWidget); pushButton->setGeometry(QRect(110, 100, 75, 23)); QObject::connect(pushButton, SIGNAL(clicked()), this, SLOT(OnClicked())); this->setCentralWidget(centralWidget); }; ~MainWindow(){};private: QProgressBar *progressBar; QPushButton *pushButton; QWidget *centralWidget; RenderThread render;public slots: void OnClicked() { connect(&render,SIGNAL(notify(int)),this,SLOT(OnNotify(int))); render.test(); }; void OnNotify(int i) { progressBar->setValue(i); };};#include "test.moc"int main(int argc,char* argv[]){ QApplication app(argc,argv); MainWindow window; window.show(); return app.exec();}

http://blog.csdn.net/tingsking18/article/details/5096172

转载于:https://www.cnblogs.com/verstin/p/4858732.html

你可能感兴趣的文章
C#HttpHelper类1.3正式版教程与升级报告
查看>>
Quartz和TopShelf Windows服务作业调度
查看>>
让ie9之前的版本支持canvas
查看>>
排序规则
查看>>
percent的用法
查看>>
Hibernate三种状态详解
查看>>
判断一个数是否是2^N次方
查看>>
js中几种实用的跨域方法原理详解
查看>>
打印图形
查看>>
《第一行代码》学习笔记7-活动Activity(5)
查看>>
ngx_http_core_module 模块
查看>>
两个常见的oracle索引
查看>>
一位有着工匠精神的博主写的关于IEnumerable接口的详细解析
查看>>
MySQL中特有的函数If函数
查看>>
安装Python3.6.2报错:zipimport.ZipImportError: can't decompress data; zlib not available
查看>>
【蓝桥杯】入门训练 Fibonacci数列
查看>>
实验十 指针2
查看>>
常见HTTP状态码
查看>>
vim 空格和换行的删除和替换
查看>>
ionic 入门学习
查看>>