zhonghua

C++博客 首页 新随笔 联系 聚合 管理
  72 Posts :: 1 Stories :: 4 Comments :: 0 Trackbacks
#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();
}

posted on 2012-04-28 13:50 米米 阅读(2096) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理