q_property 예제

마지막 게시물에서 우리는 이벤트 루프에 대해 배웠고 어떻게 그리고 왜 그것을 차단하지 않아야하는지 배웠습니다. 이미 우연히 발견했을 수도 있는 또 다른 개념은 메타 오브젝트 시스템입니다. Qt 프로젝트의 컴파일 출력을 통과한 경우 몇 가지 흔적을 보았을 것입니다. 출력은 표준 C++ 코드를 컴파일하는 것과 약간 다르게 보입니다. 아직 수행하지 않은 경우 Qt 예제 중 하나를 컴파일해 보십시오. 출력에 대해 특이한 것을 발견 할 수 있는지 확인하십시오. 이것은 메타 오브젝트 시스템(QObject 및 MOC 포함)을 다루는 “C++ 개발자를 위한 Qt의 크래시 코스” 시리즈의 두 번째 게시물입니다. 다른 항목은 다음과 같습니다. 이벤트 및 메인 이벤트 루프 메타 오브젝트 시스템 (QObject 및 MOC 포함) 신호 및 슬롯 – 개체 계층 구조 및 메모리 관리 MVC 사이의 통신 또는 오히려 모델 / 보기 및 위임 프로그래밍 캠프 빠른 / QML 캠프 또는 위젯 캠프 방법을 선택 구성 하고 Qt 응용 프로그램 Qt 빠른 / QML 예제 Qt 위젯 예제 툴링, 예를 들어 Qt 크리에이터 남아 좋은 – 투 – 알고 주제 여기에서 이동하려면? Qt 예제로 돌아가보겠습니다. 당신은 정말로 그것을 컴파일 했습니까? 당신은 같은 것을 보았습니까…? 대상에 대한 자동 MOC …

Qt에는 컴파일 및 연결 전에 추가 코드와 파일을 자동으로 생성하는 일부 C++ 확장 컴파일러가 포함되어 있습니다. 메타 오브젝트 컴파일러 또는 MOC는 프로젝트의 모든 헤더 파일을 구문 분석하는 도구입니다. 이 도구에 정의된 내용에 따라 도구는 moc_class-name.cpp라는 클래스에 대한 컴패니언 파일을 생성할 수 있습니다(아래 Q_OBJECT 참조). MOC 단계를 사용하려면 Qt 설명서를 살펴보거나 CMake에 익숙한 경우 대상에 AUTOMOC ON을 속성으로 추가하면 됩니다. Qt는이 추가 편집 단계에 대한 일부 개발자에 의해 비판되었습니다. 그러나, 그것은 좋은 이유로 이루어집니다. 그러한 결정이 내려진 이유에 관심이 있다면 Qt는 흥미로운 기사를 작성하여 다루었습니다. 생성된 moc_-files는 여러 가지 기능에 사용되는 함수를 구현합니다. 아마도 가장 중요한 것은 신호 및 슬롯 메커니즘, 런타임 유형 정보(RTTI) 및 동적 속성 시스템입니다. 첫 번째 기능인 신호 및 슬롯은 MOC 시스템을 도입하는 주된 이유이며 그 자체로도 큰 주제입니다.

Posted in Uncategorized.