添加一个假的进度条,当主线程阻塞时
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
mytime=new QTimer(this);
connect(mytime,&QTimer::timeout,this,&MainWindow::OnTimer);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::OnTimer()
{
int value = progress.value();
value = (value + 1) % 100;
progress.setprogressBar(value);
}
void MainWindow::on_pushButton_clicked()
{
progress.show();
if(mytime->isActive()==false)
{
mytime->start(100);
}
for (int i=0;i<10000;i++)
{
QThread::msleep(5);
if (i %10== 0) {
QApplication::processEvents();
}
}
mytime->stop();
progress.hide();
}
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include"mythread.h"
#include"progressbarform.h"
#include<QTimer>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
ProgressBarForm progress;
QTimer * mytime;
void OnTimer();
private slots:
void on_pushButton_clicked();
private:
Ui::MainWindow *ui;
};
#endif