QT(A)シグナルとスロット

オリジナル住所:https://houkaifa.com/2019/02/18/LearningNotes-QT-01/

アウトライン

信号及びQTデザイナによって溝及び接続機能を(結合)を加えました。
環境:Win10 + VS2017 + QT5.9.2。
コンテンツを実装する:ボタンのポップアップメッセージボックスをクリックして、プログラムを終了するにはボタンをクリックします。

ここに画像を挿入説明


まず、設立QTプロジェクト

Visual Studioの2017年、新しいQT GUIアプリケーションを開きます。

ここに画像を挿入説明

すべての道次に、[完了。

ここに画像を挿入説明

この図は、最初のディレクトリ構造であります:

ここに画像を挿入説明

プログラムをデバッグするF5、最初のGUIインタフェースを参照してください。

ここに画像を挿入説明

第二に、使用QTデザイナー加算信号と溝

ソリューションでは、QT Designerで開くには、デフォルトのファイル、ダブルクリックを見つけ.uiました。

ここに画像を挿入説明

ウィジェットボックスでは、メインウィンドウにドラッグするには、ボタンを押してください。

ここに画像を挿入説明

変更のobjectName、属性エディタでテキスト値「closeButton」。

objectnameはコンポーネントウィジェットコンポーネントの名前である場合、テキストはボタンのタイトルに表示されています。テキスト値も素早くボタンを追加するためにダブルクリックすることで変更することができます。

ここに画像を挿入説明

信号チャネル/スロットエディタの信号を加えました。

送信者がマウスの左ボタンのクリック(イベント/イベント)であるボタンcloseButton、信号クリック()信号であり、受信者はQtGuiApplicationClass、クローズ用スロット()、QtGuiApplicationClass破壊である関数です。

ここに画像を挿入説明

Ctrlキー+ S変更を保存し、プログラムが終了、closeButton]ボタンをクリックし、プログラムをデバッグするためにVS2017、F5に戻ります。

QtGui信号及びスロットは、イベントの開発の表現であり、すなわち、信号がトリガ・イベントである、グルーブ信号によってトリガされるイベントハンドラです。
/スロットエディタは、簡単に信号のQt Designerのスロットを通してネイティブの信号を追加することができます。記事後カスタムスロットを追加する方法について説明します。

第三に、結合溝のカスタムによってconnect関数

QT Designerで新しいボタンを追加し、MessageButtonに変更され、関連するプロパティは、今、私たちは2つのボタンがあります。

ここに画像を挿入説明

戻るVS2017は、スロットの定義を追加、.hファイルにアクセスしてください。

関数名と戻り値の型が固定形式であることを特徴:無効on_WidgetName_Event()。
ここでWidgetNameは、対応するイベントをクリックすると、MessageButtonであるあなたは下の図を見ることができるので、完全な関数の宣言は、次のとおりです。

空on_MessageButton_clicked();

ここに画像を挿入説明

ファイルのUI _ * H .hファイルの表示された場合は、次のように、エラーが含まれています。
ここに画像を挿入説明
単にqmakeのに変換プロジェクトを選択し生成されたプロジェクトは、QT VSツール]メニューのVS2017バーに解決することができます。
ここに画像を挿入説明

そして、あなたは達成するための機能を追加するために、対応する.cppファイルにジャンプすることができます。

本明細書で使用する場合、警告メッセージボックスを表示するQMessageBoxクラス警告機能。それはQMessageBoxボックススタイルのヘッダファイル内の情報を豊富に提供し、対応する呼情報ボックスとは、必要がヘッダファイル.hファイルに含めます。

#include <QMessageBox.h>

ここに画像を挿入説明

今まで、私たちは、ボタンMessageButtonは、定義し、トラフその機能(on_MessageButton_clicked)を実装追加しました。

我々は唯一の定義とスロット機能の実装を完了したので、しかし、今、我々は、messageButtonはどんな反応を持っていないボタンをクリックし、プログラムを実行し、ここではQtGuiは、シグナルとスロットはconnect関数を介して接続されているクラスのコンストラクタです。

ここに画像を挿入説明

次のようにここではconnect関数のプロトタイプは次のとおりです。

static QMetaObject::Connection connect(const QObject *sender, const QMetaMethod &signal,
                        const QObject *receiver, const QMetaMethod &method,
                        Qt::ConnectionType type = Qt::AutoConnection);

これまでのところ、プログラムをデバッグするF5は、ポップアップメッセージボックスを表示するには、ボタンを押してください。

ここに画像を挿入説明

公開された26元の記事 ウォン称賛24 ビュー30000 +

おすすめ

転載: blog.csdn.net/iSunwish/article/details/87858911