QProgressDialog自动弹出的问题

QProgressDialog自动弹出的问题

现象

newQProgressDialog的对象后,没有调用show函数,但是进度条窗口仍然弹出了

原因

QProgressDialog内部有个定时器,定时会触发弹出

解决

调用reset函数,里面对定时器进行了stop,因此就不再会自动弹出

QProgressDialog::reset()

new之后尽可能立即reste

QProgressDialog* _progDlg = new QProgressDialog(q);
_progDlg->setLabelText(OiCreateTemplDialog::tr("正在保存"));
_progDlg->setWindowTitle(OiCreateTemplDialog::tr("正在保存"));
_progDlg->setRange(0, 0);
_progDlg->setModal(true);
_progDlg->setAutoClose(false);
_progDlg->setLayoutDirection(Qt::LeftToRight);
_progDlg->setCancelButton(nullptr);
_progDlg->setWindowFlag(Qt::WindowCloseButtonHint, false);
_progDlg->reset();

你可能感兴趣的:(C++,c++,qt,QProgressDialog,自动弹出,QTimer,定时器)