如何识别QEvent发送者
我重新实现了 QWidget::event() 处理程序,在其中处理 windowStateChange 事件。我想知道是否有任何方法可以识别哪个小部件发送此事件。
I have reimplemented QWidget::event() handler, where I am handling windowStateChange event. I was wondering if there is any way to identify which widget sends this event.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不,没有办法做到这一点,因为发布或发送 QEvent 不需要 QObject 实例。当您发布事件时,它是通过静态 QCoreApplication 方法完成的,并且不会询问谁发送该事件。哎呀,这会适得其反,因为 Qt 和其他事件驱动代码之间互操作的一种有用方法是进行事件转换并将事件发布到 Qt 方面。发布代码可以是外部“C”函数。
No, there's no way to do that, because posting or sending a QEvent does not require a QObject instance. When you post an event, it's done via a static QCoreApplication method, and it doesn't ask who's sending the event. Heck, it'd be counterproductive, because a useful way of interoperation between Qt and other event-driven code is to do event translation and post the events to the Qt side of things. The posting code may be an extern "C" function.
当窗口最小化、最大化或全屏时会生成该事件,因此您只能从它所应用的小部件中看到它。
That event is generated when a window is minimized, maximized or full-screened so you should only see it from within the widget to which it applies.