• 【转】Qt多线程操作界面---在QThread更新QProgressBar


    复制代码
    #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

  • 相关阅读:
    会话技术
    Http
    tomcat
    xml
    javascript
    css
    Html
    递归
    二叉树的相关复习
    vim学习
  • 原文地址:https://www.cnblogs.com/tiandsp/p/7580577.html
Copyright © 2020-2023  润新知