、私は次のような状況があります。同時に/つだけQMessageBoxませダブル
- ベリファイ方式では
QTabWidget
の入力のために、私はサブのエラーを決定するために来ていますウィジェットの入力。私は私が活性化した後QMessageBox
- を表示するつもりせる方法
onShowEventFinished()
にQTimer::singleShot
を発射しています。このウィジェットのshowEvent
でアクティブウィジェット - としてこのサブウィジェットを設定することの原因で
- 新しいサブウィジェット、私は最初に私の検証(ステップ1)からのエラーメッセージを表示したい。
したがって、verifyのメッセージが表示されますが、手順3で私のsingleShotが原因で、もう1つが表示されます。私は、最初のものが閉じられたときに、最も早く2番目のものを表示したい。
例コード(それは、最初のメッセージが早いときに関するサブウィジェットイストの上映で表示されることが重要です。):、私はQMutex
でこれを解決するためにさまざまな方法を試してみた
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型のフィールドを作成して使用することができます。常に静的メソッドのみを使用するのは珍しいことではありません:) –