弹出进图条对话框
在加载和查找时,一般都会弹出一个显示进度的进度条对话框,使用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);