この紙の記録は、特定の典型的なQtのにいくつかの小さな機能を達成するために使用されます。
特定の条件下でコントロールディスプレイ
いくつかの機会に、いくつかのツールを維持し、アップグレードとして、特定の担当者のためのいくつかのインタフェース機能を非表示にする必要があり、スタッフや開発者のためのオンサイトサポート、異なる機能を使用するが、同時に複数のツールを維持したくない、あなたは、機能の一部を非表示にすることができます。
このセクションでは、プロンプト(使用QLabel)をダブルクリックして、別のボタンが表示さを示しています。
0、デザイン
インターフェイスは、2つのコントロールがあります:QLabelのための1つ、コントロール名をするlbShow
ために、(テキストが空にすることができ、コーナーを配置)、プロンプトのQPushButtonのための1つのコントロール名を表示するbtnRegister
ボタンの機能を示しています。
1、声明(実際はオーバーロードされた)フィルタ機能のイベントeventFilter
:
bool eventFilter(QObject *watched, QEvent *event);
2、ボタンを非表示lbShow
フィルタのインストール・イベント:
// 先隐藏注册按钮
ui->btnRegister->hide();
// 显示注册按钮的触发事件:// 双击左上方控件显示
ui->lbShow->installEventFilter(this);
3、イベントフィルタを達成するために:
bool DialogDemo::eventFilter(QObject *watched, QEvent *event)
{
// 针对lbShow控件
if (watched == ui->lbShow)
{
//判断双击事件
if (event->type() == QEvent::MouseButtonDblClick)
{
// 双击显示
ui->btnRegister->show();
return true;
}
else
{
return false;
}
}
else
{
return QWidget::eventFilter(watched, event);
}
}
eventFilter
フォームと戻り値を達成するための機能、Qtのアシスタントを参照してください。一般的には、親プロセスに返さコントロールを、監視していない場合は、カスタムイベントは、真扱った場合に返す必要があります。