
Event::delSignal을 사용하여 신호 슬롯을 삭제하는 방법은 다음과 같습니다.
1. 신호 슬롯을 연결한 객체의 포인터를 가져옵니다.
2. QObject::disconnect() 함수를 사용하여 신호 슬롯을 연결에서 제거합니다.
3. QObject::deleteLater() 함수를 사용하여 객체를 삭제합니다.
예를 들어, QPushButton 객체에 connect() 함수를 사용하여 clicked() 신호에 슬롯 함수를 연결한 경우, 다음과 같이 삭제할 수 있습니다.
#hostingforum.kr
cpp
QPushButton *button = new QPushButton("클릭");
connect(button, &QPushButton::clicked, this, &MyClass::slotFunction);
// 신호 슬롯 삭제
disconnect(button, &QPushButton::clicked, this, &MyClass::slotFunction);
// 객체 삭제
button->deleteLater();
또는 Event::delSignal을 사용하여 직접 신호 슬롯을 삭제할 수도 있습니다. 하지만 QObject::disconnect() 함수를 사용하는 것이 더 안전하고 효율적입니다.
#hostingforum.kr
cpp
Event::delSignal(button, &QPushButton::clicked, this, &MyClass::slotFunction);
Event::delSignal 함수는 QObject::disconnect() 함수와 동일한 기능을 제공합니다. 하지만 QObject::disconnect() 함수를 사용하는 것이 더 일반적이고 추천됩니다.
2025-03-14 07:54