내가 추상 기본 클래스 Foo
있다고 가정하고, 나는 신호가에 대한 참조를 사용하려면 :Qt 신호에서 추상 클래스에 대한 참조를 사용하는 방법은 무엇입니까?
void FooUpdated(Foo &);
이 작동하지 않는, 일치하는 슬롯은 호출되지 않습니다. 이를 달성하는 방법이 있습니까, 아니면 대신 포인터를 사용해야합니까 (포인터와 함께 작동합니다).
편집 - 코드
신호 (IDecodedFrame
추상적 인) :
void ShowFrameSignal(IDecodedFrame & DecodedFrame);
슬롯 :
virtual void ShowFrame(IDecodedFrame & DecodedFrame);
연결 :
connect(this, SIGNAL(ShowFrameSignal(libCommon::IDecodedFrame &)),
sink, SLOT(ShowFrame(libCommon::IDecodedFrame &)));
디버깅은 연결이 true
을 반환 함을 나타냅니다.
어떻게 슬롯의 모습 등을들 수 있으며, 당신은 어떻게 신호와 슬롯을 연결합니까? –
@ 프랭크 : 연결에 대한 정의와 코드를 추가했습니다. –
설명서를 보지 않고도 답을 모르겠지만 IDecodedFrame이 다른 기본 Qt 클래스에서 파생되고 필요한 기능을 구현해야한다고 확신합니다. 아마 안전한 복사를하기위한 복사 생성자 일 겁니다. –