LoginSignup
0

【Qt】Qt特有の仕組みであるsignal/connect/slotについて概要

Posted at

最近Qtを触ることがあったので、その際に調べたsignal/connect/slotの覚書。

概要

Qt特有のオブジェクト間の通信の仕組み。
Qt以外だとコールバック関数を利用している。

signal/slot/connect

signal

なにかしらが発生したことを他のオブジェクトに通知するための関数
ただし、実体がない。

e.g.

  • ボタンが押されたときに発生する
  • 画面が更新した時に発生させる

slot

signalに反応して実行される関数。
signalをemitすることで反応する。

e.g.

  • ウィジェットを閉じる
  • ラベルの文字列を変更する

connect

slot関数をsignalと結びつけるための関数。

connect文法
connect(sender, SIGNAL(signal), receiver, SLOT(slot) );

使用例

example1.h
signals:
    void SIG_test();
example2.h


public slots:
    void SLOT_test();

example2.cpp

void SLOT_test()
{
	printf("test");
}

connect(m_object1, SIGNAL(SIG_test()),
        this, SLOT(SLOT_test()));

参考

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0