问题描述
我正在pyside2中编写一个工具,该工具可在嵌入式Python环境(特别是Audodesk Maya)中运行,在该环境中,我希望该工具能够响应某些关键事件。但是,我不想阻止主机应用程序中的任何QWidget
响应它通常会接受和响应的关键事件,包括顶级窗口小部件。
通常,这可以在Qt应用程序中实现,方法是为所有顶级小部件提供一个通用类,以覆盖其keyPressEvent
方法,然后在该方法中执行一些操作,例如调用函数并将其传递给窗口不关心自己。但是,由于它是在嵌入式环境中运行的,并且大多数主机应用程序的窗口都不是我的PySide脚本的一部分,因此,这是不可能的。
我还考虑过在所有窗口(即顶级窗口小部件)上安装事件过滤器,并让其过滤我关心的这些关键事件。只要窗口的子窗口小部件能够处理其所有重要的键事件(通常就是这种情况),它就会起作用。但这会破坏使用其keyPressEvent
或event
方法处理自己的按键事件的顶级窗口小部件的功能。
本质上,我想要的是一个事件过滤器,该过滤器仅接收特定小部件的未处理事件,而不是在处理小部件之前发送给小部件的所有事件。
有什么办法吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)