2017-05-11 14 views
3

QT Creator에서 디자인 모드로 위젯을 마우스 오른쪽 버튼으로 클릭하고 "슬롯으로 이동"을 선택하면 위젯의 신호 중 하나에 대한 슬롯 기능이 생성됩니다. 이 연결을 만들려면 connect() 함수를 생성했을 것이라고 생각했지만, 소스 코드에서 그런 것을 찾을 수 없습니다. 위젯의 신호를 슬롯 기능에 연결하는 실제 코드는 어디에 있습니까? 당신이 QtCreator의 디자이너, 이쪽으로부터 출력 중 하나를 사용하는 경우 감사QT Creator에서 Signal to Slot, connect() 함수는 어디에 있습니까?

답변

3

.ui 파일

Qt는 디자이너 UI 파일 양식의 위젯 나무의 XML 표현이며, uic에 의해 처리되는 입니다 "사용자 인터페이스 컴파일러"

Qt의 UI 형식에서 제공하는 기능 중 하나는 AutoConnect입니다.

uic은 자동으로 신호와 슬롯을 연결하는 양식의 setupUi() 함수로 코드를 생성합니다. 다음과 같이

작동 방법은 다음과 같습니다

귀하의 슬롯은 다음과 같은 형식을 따라야합니다 :

object-name이 슬롯을위한 신호를 방출하는 물체의 이름입니다
void on_<object-name>_<signal-name>(<signal-parameters>); 

.

나중에 uic는 = object-nameobjectName()이있는 QObject가 발견, Qt의 반사 시스템을 사용 QMetaObject::connectSlotsByName(this);

를 호출하는 코드를 생성하고,이 신호가 귀하의 슬롯에 연결되어 있습니다.