2013-11-22 1 views
-1

슬롯에 리턴 할 수 있습니까? 예 :슬롯에서 변수를 가져 오는 방법은 무엇입니까?

QObject::connect(sender, SIGNAL(finished()), receiver, SLOT(onprocessFinished())); 

및 pnprocessFinished 나중에 가능 사용될 QString를 반환? 그렇다면 어떻게해야합니까?

+0

void A::foo() { connect(this, SIGNAL(mySignal()), this, SLOT(mySlot())); int var = emit mySignal(); // int mySignal() qDebug() << var; // will print 12 } int A::mySlot() { return 12; } 

그러나 : 당신은 당신이 emit를 호출 할 때 반환 값을 얻을 것이다. 특정 "이벤트"에 특정 값을 가져 오는 슬롯이 많이 있습니다. QObject에서 파생 된 내용에 주로 달려 있습니다. 즉, 귀하의 질문은 잘 조사되지 않고, 너무 광범위합니다. –

답변

0

슬롯은 값을 반환 할 수 있지만 신호는 동일한 유형을 반환해야하며 직접 연결에서 작동합니다. ... 나는 그 유용 생각하지 않는다, 문서로보고를위한 좋은 예입니다

+0

여기에이 질문에 대한 아주 좋은 대답이 있습니다 : http://stackoverflow.com/questions/5842124/can-qt-signals-return-a-value 그러나 해결되지 않은 한 가지는 크로스 스레드 신호입니다. SIGNAL-SLOT 연결에서 리턴 값을 기대하는 것은 구현 세부 사항이 함수 호출 의미론이라고 가정합니다. In Cascades 신호는 종종 스레드를 교차하며 비동기 적으로 처리됩니다. 작품이라는 사실은 환경의 특징이 아니라 MOC 컴파일러의 인공물처럼 들립니다. – Richard