- QT의 핵심 메커니즘으로 객체간 통신에 이용
- connect 함수를 이용해 signal과 slot을 연결
- 이벤트 발생 오브젝트와 이벤트 핸들러 오브젝트간에 아무런 연관관계 없이 서로 참조하지 않으면서 사용 가능
- 시그널이 발생하면 슬롯 함수 실행
- 1(시그널) : N(슬롯)의 연결 가능
- 참고
Example
#include <QObject>
class Counter : public QObject
{
Q_OBJECT
public:
Counter()
{
m_value = 0;
}
int value() const
{
return m_value;
}
public slots:
void setValue(int value);
signals:
void valueChanged(int newValue);
private:
int m_value;
};
setValue에서 변경 값을 받고 시그널을 발생 → 두 개의 오브젝트(a, b)를 connect로 연결 → a에서 값이 변경되면 valueChanged 시그널이 발생되어 b의 setValue 함수를 실행
void Counter::setValue(int value)
{
if(value != m_value)
{
m_value = value;
emit valueChanged(value);
}
}
Counter a, b;
QObject::connect(&a, &Counter::valueChanged,
&b, &Counter::setValue);
a.setValue(12); // a=12, b=12
b.setValue(48); // a=12, b=48
'IDE > QT Creator' 카테고리의 다른 글
[QT Creator 5.14] Ubuntu에 QT Creator 설치하기 - 수정 중 (1) | 2020.12.24 |
---|---|
[QT Creator] 회사에서 사용 시 License 비용 (1) | 2020.12.21 |
[QT Creator] Copy Project (0) | 2019.09.14 |
[QT Creator] 프로젝트 생성 (0) | 2019.09.14 |
설치 (0) | 2019.09.14 |