2017-05-11 6 views
3

QT Creatorでは、デザインモードで、ウィジェットを右クリックして「スロットに移動」を選択すると、ウィジェットの信号の1つのスロット機能が作成されます。 これは、この接続を作成するためにconnect()関数を生成したとは思っていましたが、ソースコードのいずれにもそのようなものは見つかりませんでした。 ウィジェットの信号をスロット関数に接続する実際のコードはどこですか? おかげQT CreatorのSignal to Slotは、どこにconnect()関数がありますか?

答えて

3

あなたはQtCreatorのデザイナーを使用している場合は、このからの出力のいずれかが

のQtデザイナーのUIファイルはフォームのウィジェットツリーのXML表現であり、uicによって処理されている.uiファイルであり、"ユーザインタフェースコンパイラ"

Qtのuiフォーマットで提供される機能の1つは、AutoConnectです。

uicは、信号とスロットを接続するフォームのsetupUi()関数で自動的にコードを生成します。次のように

それが動作する方法は、次のとおりobject-nameこのスロットのためのシグナルを発したオブジェクトの名前である

void on_<object-name>_<signal-name>(<signal-parameters>); 

あなたのスロットは、次の形式に適合しなければなりません。

その後、uicは次に= object-nameobjectName()を有するQObjectが発見され、Qtの反射システムを使用QMetaObject::connectSlotsByName(this);

を呼び出すコードを生成し、それは、信号が自分のスロットに接続されているのです。

関連する問題