Qt signal & slot

최대 1 분 소요

문제의 시작

Qt에서 gui를 간단히 만드는 경우가 있었다. gui는 `QThread`로 돌아가는데, 클래스 내에서 `QThread` 가 아닌 `std::thread`로 사용하고 ui에 접근할때 오류가 파바앙 나타나며 본좌를 흥분하게 만들었다. 무튼 난 통신때문에 `std::thread`를 사용했고, 이때 `signal & slot`방법으로 해결하였다.
오류는 아래와 같은데,,, 여기보면 std::thread에서 QThread에 접근을 못한다나 뭐라나..
signal을 쏴주면 slot이 이놈을 감지하고 해당 함수를 실행시킬 수가 있다.
class 내부나 외부에서 모두 사용 가능하다.

Signal & Slot 만들기

간단하게 만들어 봐따
우선 mainwindow.h에 다음과 같이 signal과 slot을 선언해주장~
그런다음 mainwindow.cpp

Connect

signal과 slot 을 connect 해주는 작업이 필요하다.

Execute

텍스트 입력 하고 Emit 버튼을 누르면 오른쪽 slot에 넘어간다.

참고

* Build: cmake * Qt version: Qt5, Qt6 * 프로젝트 예제 코드: [here](https://github.com/YeongJunKim/colson-log/tree/master/qt/signal_slot) * Qt signal-slot reference: [qt-signal-slot](https://doc.qt.io/qt-5/signalsandslots.html)

태그: , ,

카테고리: ,

업데이트: