【转】Qt多线程操作界面---在QThread更新QProgressBar
2015-10-07 15:08
435 查看
#include <QApplication> #include <QThread> #include <QMainWindow> #include <QProgressBar> #include <QPushButton> class RenderThread : public QThread { Q_OBJECT signals: 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_OBJECT public: 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
相关文章推荐
- Qt flash_eraseall nandwrite 进度条显示擦除、烧录
- Qt 下载地址和从Qt4到Qt5
- qt5.2音乐播放器的播放功能
- 自学QT之托盘图标
- 对qt 中gridlayout的一点注解
- 【转】发布的QT程序无法显示图标和图片的问题
- Qt学习交流(广告)
- QT学习(打个广告)
- Qt5.3.2 mingw32环境变量设置方法
- 使用cocoa捕获dock栏中的“退出”事件,解决qt开发的应用程序退出异常的问题
- Qt--使用widget部件
- Qt -- button的使用
- QT开发--hello
- QT中一些常用的类
- 如何分析一个QT类
- Ubuntu14.04中编译安装maliit-0.94-qt4
- QT5 学习之路30---Graphics View Framework
- QT5 学习之路29---绘制设备
- QT5 学习之路28---坐标系统
- QT5 学习之路27---渐变