2011-05-09 3 views
12

the Qt event systemQEvent class에 대한 설명서 만 있습니다. 나는 QObject::event() 메서드의 동작에 관심이 있습니다. 문서의 내용 :Qt에서 이벤트 전파

이 가상 함수는 개체에 이벤트를 받고 이벤트 e가 인식되고 처리되면 true를 반환해야합니다.

event() 메서드에서 false이 반환 될 때 예상되는 동작은 무엇입니까? 이벤트를 처리하기 위해 다른 어떤 시도가 있습니까? 이벤트가 자동으로 부모 개체로 전달됩니까?

참고 : 원본을 사용할 수 있다는 것을 알고 있으며 복사본이 있습니다. 필자는이 동작을 다루는 문서 일부를 찾고 있습니다.

답변

6

이벤트 기능이 이벤트를 특정 핸들러 (예 : QWidget::keyPressEvent)에 위임 한 이후에 해당 이벤트 유형을 필터링하지 않으려면 이벤트를 명시 적으로 기본 클래스 이벤트 메소드로 전달하는 것이 가장 좋습니다.

QCoreApplication::notify은 반환 값을 기반으로 이벤트를 전파합니다. true에서 이벤트는 소비 된 것으로 간주하여 중지합니다. 그렇지 않으면 이벤트가 객체의 부모에게 전달됩니다. 자세한 내용은 Another Look at Events을 참조하십시오.

+0

"반환 값을 기반으로 이벤트를 전파하는"의미는 무엇입니까? 이것은 처음에는 명백해 보이지만 다른 곳으로 전파되는 부분은 무엇입니까? 이벤트에 수신기가 하나만 있습니다. 대신에 어떤 수신기를 사용해야하는지 어떻게 알 수 있습니까? –

+0

이 모범 사례는 인용 된 링크에 잘 설명되어 있지만 질문에 대답하지 않습니다. 누가이 반환 값을 사용합니까? –

+0

QCoreApplication :: notify의 소스 코드를 살펴보십시오. QObject :: event의 반환 값을 사용합니다. 이벤트는 오브젝트의 부모에게 전파됩니다. –