true를 반환하는 QMetaObject :: invokeMethod를 사용하여 GUI 스레드에서 메서드를 실행하려고합니다. 하지만 Qt :: QueuedConnection을 사용하면 내 메소드가 호출되지 않습니다 (invokeMethod가 true를 반환하더라도). 내가 Qt는 :: AutoConnection 또는 Qt는 :: DirectConnection 방법을 사용하는 경우QMetaObject :: invokeMethod는 true를 반환하지만 메서드는 호출되지 않습니다.
QMetaObject::invokeMethod(this, "draw_widgets", Qt::QueuedConnection)
내가 ... 을 오류 메시지 또는 아무것도하지 않는 전화를받을 않습니다
이
내가 사용하고 무엇인가 , 물론 같은 스레드에서. GUI 스레드가 아니라 내가 필요한 것입니다.draw_widgets는 void draw_widgets() 유형의 공용 슬롯이며 내 클래스는 QObject를 상속하며 Q_OBJECT 매크로도 사용합니다.
나는 이것에 대한 도움이나 방법이 호출되지 않는 이유를 확인하는 방법에 대해 감사하게 생각합니다.
감사합니다.
내가 비슷한 상황이 : QObject에서 상속 받고'Q_OBJECT'를 사용하는 클래스가 있습니다. 이 클래스의 인스턴스는 메인 루프에 생성됩니다. 그런 다음 메인 루프에서 같은 클래스의 메서드를 실행하는 동안'void hideListsSlot()'이 public 루프 인 곳에서 QMetaObject :: invokeMethod (this, "hideListsSlot", Qt :: QueuedConnection); 수업. 슬롯은 호출되지 않습니다. – Giorgio