2010-06-14 3 views
1

Windows XP에서 Qt 4.5를 사용하고 있습니다. 신호 슬롯 연결 메커니즘Q_OBJECT 매크로를 사용해야한다는 것을 알고 있습니다. 그러나 그 외에도 Q_OBJECT 매크로를 사용해야하는 다른 이유가 있습니까? 최근에 다른 메타 객체 기능에 대해서는 Q_OBJECT 선언이 필요하다는 것을 알게되었습니다. 신호 슬롯 옆에있는 기능은 무엇입니까? 나는 그것에 관한 문서를 시도했지만 도움이되는 것을 찾을 수 없었다. 이것에 관한 어떤 조언도 환영합니다.신호 슬롯 메커니즘이 아닌 Qt 4에서 Q_OBJECT 매크로가 필요한 기능

답변

8

당신은 Q_OBJECT 매크로가 여기에 필요할 때 당신에 대해 알아야 할 모든 찾을 수 있습니다 : 이력서에서

http://doc.qt.digia.com/4.6/metaobjects.html

당신은, 번역 TR을 사용하여 클래스 이름을 검색하려면, 신호와 슬롯 필요 실시간으로 QObject에서 다른 클래스 (instrospection)를 상속 받아 속성을 설정하고 newInstance를 호출 할 수 있는지 확인합니다.

희망이 있습니다.

+0

예 .. 정확히 .. 감사합니다 ... – liaK

+0

당신은 환영합니다 :) – cnebrera

+0

당신은 ' 주어진 클래스가 다른 클래스로부터 상속 받았는지를 알기 위해서 필요하다. 반례에 대한 부스트 특성을 참조하십시오. – MSalters

0

AFAIK는 메타 정보 (시그널 슬롯, vars의 이름)를 회수하는데 사용되며 객체의 소유권 추적을 지원합니다. (새롭고 부모님이이 객체들을 부모에게 전달할 때 결정적으로 처리됩니다.)