2011-09-14 36 views
0

我重新实现了QWidget :: event()处理程序,我正在处理windowStateChange事件。我想知道是否有任何方法可以确定哪个小部件发送此事件。如何识别QEvent发件人

回答

0

当窗口被最小化,最大化或完全屏蔽时,会生成该事件,因此您应该只从其应用的窗口小部件中看到该事件。

+0

我遇到的问题如下。我在MainWindow中的一个布局中使用了Phonon :: VideoWidget。每当MainWindow处于全屏模式并且播放停止时,MainWindow会退出全屏。我很困惑,因为我没有做任何事情来将MainWindow恢复到NoState。不知道Phonon:VideoWidget是否需要对此做些什么? – Neox

+0

我明白了。关于该小部件的全屏模式没有太多的文档可以找到。我觉得这是一个相当简单的功能便利功能,他们提到,对于更复杂的交互,您应该手动管理全屏实现。 –

0

不,没有办法做到这一点,因为发布或发送QEvent不需要QObject实例。当你发布一个事件时,它通过一个静态的QCoreApplication方法完成,它不会询问谁在发送事件。哎呀,这样做会适得其反,因为Qt和其他事件驱动代码之间的一种有用的互操作方式是做事件翻译并将事件发布到事物的Qt端。发布代码可以是外部“C”功能。