在我的应用程序,我有以下情况:在同一时间没有双/只有一个QMessageBox提示
- 在一个
QTabWidget
输入一个验证法,我来确定错误的子-widget的输入。 - 在这项事业我设置的子控件作为活动部件
- 在这个小部件,我烧的
QTimer::singleShot
的方法showEvent
onShowEventFinished()
中,我要告诉一个QMessageBox
- 激活后新的子小部件,我首先要显示来自我的验证的错误消息(步骤1)。
所以然后来自验证的消息出现,但随后在步骤3中我的singleShot的原因中,另一个出现在它上面。我想最早显示第二个,当第一个关闭时。 (这一点很重要的第一条消息最早时显示的关于子部件IST表现。)
示例代码:
class MySubwidget : public QWidget
{
// omitted (ctor, etc.)
protected:
void showEvent(QShowEvent* e)
{
QShowEvent(e);
QTimer::singleShot(200, this, SLOT(onShowEventFinished()));
};
private slots:
void onShowEventFinished()
{
bool showEntryHint = false;
// omitted (some stuff to determine to show an entry hint or not)
if(showEntryHint)
{
QMessageBox t_MessageBox(this);
// omitted (set up the message box
t_MessageBox.exec();
}
};
};
您可以在类型为'QMessageBox'的类中创建一个字段并使用它。始终只使用静态方法并不是必须的:) –