A:Qtのバンド信号パラメータ
main.cppに
#include " widget.h " の#include " slot.h " の#include <はQApplication> int型のmain(int型 ARGC、CHAR * ARGV []) { はQApplication(ARGC、ARGV)。// 查找はQApplication()的相关资料 ウィジェットW。 w.show(); リターンa.exec(); }
widget.cpp
#include " widget.h " の#include " ui_widget.h " の#include " のQPushButton " の#include <QDebug> // の#include "mypushbutton.h" // カスタムボタン ウィジェット::ウィジェット(QWidgetの*親) :QWidgetの(親)、UI(新しい新しいウィジェットUiの::)// ウィジェットクラスはQWidgetから継承され、そこには、クラスのコンストラクタの外部で定義されている。 { UI - > setupUi(本) のQPushButton * BTN1 = 新しい新規のQPushButton; BTN1 - >のsetParent (この); BTN1 - >setText(「引数を使った信号処理」);
のQPushButton * =新しい新しいBTN2のQPushButton。
btn1->のsetParent(この); btn1->のsetText( "パラメータなしで信号処理" );
/ * 2つの信号は関数のオーバーロードに使用されているので、その関数ポインタの使用と区別するためにそこに必要。
*関数ポインタを:基本的機能であるポインタ、
* //プロファイルを次の文:「::」:でスコープ定義する
*空(はMyWidget :: * myWidget_singals) (パラメータ関数ポインタ)=&はMyWidget :: my_singals;
*&はMyWidget :: my_singalsする:信号(機能)の名前を表します。我々は、変数名として彼を考えると。 &はMyWidget ::関数はコンパイラに伝えるために使用されてはMyWidgetクラスです
*(はMyWidget :: * myWidget_singals):関数ポインタ名:はMyWidget ::ピンポイントの彼の範囲* int型C = 5; * int型 * P = .. C;、&*
/
無効(ウィジェット:: * myWidget_singals)()=&ウィジェット:: my_singals; //パラメータなし信号
無効(ウィジェット:: * myWidget_singals1)(int型、QStringの)=&ウィジェット:: my_singals; //信号パラメータ
(BTN1、Widget_singals、この、&ウィジェット:: N_canshu)接続; //パラメータなしで信号を処理します。
CONNECT(BTN2、Widget_singals1、この&ウィジェット:: print_singals); //信号処理パラメータ。
}
(QStringのint型のC、)、ボイドウィジェット:: print_singals //信号処理パラメータ。
{
//str.toUtf8()。データ()は、使用する中国の必要性があるため。
qDebug()<< << C << a.toUtf8()データを()<< ENDL "息子ウィジェットsingals Cとなるから"。
}
:: N_canshuウィジェットボイド()
{
qDebug()<< "NOパラメータ";
}
widget.h
WIDGET_H #ifndefの に#define WIDGET_H する#include <QWidgetの> QT_BEGIN_NAMESPACE 名前空間宇井{ クラスウィジェット;} // 名前空間宇井 QT_END_NAMESPACEの クラスウィジェット:公共QWidgetの { Q_OBJECTの 公共: ウィジェット(QWidgetの *親= nullptr a)は、 〜ウィジェット(); 無効 print_singals (INT C、QStringのA); //はパラメータで関数を処理する溝 空隙 N_canshuを(); // の引数なしで処理槽 信号:
/ *キーワード信号が定義信号を追加する必要があります。
*ノーリターン値信号が、あなたはパラメータを持つことができます。
*信号は、関数宣言で、単純に定義せずに宣言します。
*使用が送ら発します。
*信号が過負荷状態にすることができます。
* /
空my_singals(); //カスタム信号
ボイドmy_singals(INT、QStringの)信号が伝送される;. //パラメータ信号帯域
プライベート:宇井::ウィジェット * UI。
}。
#endifの // WIDGET_H
II:ポインタの機能と関数ポインタ