QT弹出进图条对话框

QT

Posted by YiMiTuMi on July 26, 2019

弹出进图条对话框

在加载和查找时,一般都会弹出一个显示进度的进度条对话框,使用QProgressDialog弹出一个进度条对话框,一般将其放在一个线程当中,因为QT只能在主进程中对界面进行改变,所以我们需要设计槽来向主进程发出打开信号:

.h文件:

private:
	QProgressDialog* dialog;

signals:
	void hintProgerssBar(); //信号函数

private slots:
	void PBDialog(); //槽

.cpp文件:

在构造函数里连接槽:

connect(this, SIGNAL(hintProgerssBar()), this, SLOT(PBDialog()));

PBDialog()实现:

void Demo::PBDialog()
{
    int count = 20000;
    dialog = new QProgressDialog("查找", "取消",  0,  count,  this);
    dialog->setWindowTitle("进度");
    dialog->setWindowModality(Qt::WindowModal);
    dialog->show();
    for (int i = 0; i <= count; i++)
    {
        dialog->setValue(i);
        QCoreApplication::processEvents();
        if (dialog->wasCanceled())
        {
            break;
        }
    }
    dialog->setValue(count);
}

起一个线程在其中调用信号函数:

QtConcurrent::run(this, &Demo::hintProgerssBar);

紫苑花 – 回忆、反省、追想