我有一个带有许多按钮、用户可交互小部件等的Qt程序。
在程序的某个阶段,我想让所有小部件暂时“停止工作”;停止对鼠标点击的响应,而是将事件传递给一个函数。
(这样用户就可以选择一个小部件来执行元操作。部分解释在这里:获取Qt小部件的变量名(用于样式表)?)
用户通过单击小部件来选择要处理的小部件,当然,单击按钮不会导致绑定函数运行。
什么是正确的(最抽象、最合理)方法?
(不涉及太多新代码。即:不是子类化每个小部件)
Qt中是否有专门为此设计的内容?
到目前为止,我能够检索出程序中所有小部件的列表(通过调用
在程序的某个阶段,我想让所有小部件暂时“停止工作”;停止对鼠标点击的响应,而是将事件传递给一个函数。
(这样用户就可以选择一个小部件来执行元操作。部分解释在这里:获取Qt小部件的变量名(用于样式表)?)
用户通过单击小部件来选择要处理的小部件,当然,单击按钮不会导致绑定函数运行。
什么是正确的(最抽象、最合理)方法?
(不涉及太多新代码。即:不是子类化每个小部件)
Qt中是否有专门为此设计的内容?
到目前为止,我能够检索出程序中所有小部件的列表(通过调用
QObject.findChildren(QtGui.QWidget)
因此解决方案可以包含这一点。
我目前的可怕想法是:
- 以某种方式在一个函数中处理所有应用程序事件,并在需要应用程序停止时不允许通过事件。
- 当我需要休眠时,创建一个新的透明小部件,它接收鼠标点击并将其拉伸到整个窗口。获取点击的坐标并找出下面的小部件。
- 以某种方式创建窗口的新“shell”实例。
谢谢!
(抱歉写得很糟糕;有点赶)
Python 2.7.2
PyQt4
Windows 7