Qtの実践記録:インタフェースデザインの例のレコード番号

この紙の記録は、特定の典型的な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のアシスタントを参照してください。一般的には、親プロセスに返さコントロールを、監視していない場合は、カスタムイベントは、真扱った場合に返す必要があります。

公開された481元の記事 ウォンの賞賛244 ビュー110万+

おすすめ

転載: blog.csdn.net/subfate/article/details/104158010