gpt4 book ai didi

python - Qt - 暂时禁用所有事件或窗口功能?

转载 作者:行者123 更新时间:2023-12-04 00:46:35 24 4
gpt4 key购买 nike

我有一个包含许多按钮、用户可交互小部件等的 Qt 程序。
在程序的某个阶段,我希望所有小部件暂时“停止工作”;停止对鼠标点击的行为,而是将事件传递给一个函数。

(这样用户就可以选择一个小部件来执行元操作。部分解释在这里:Get variable name of Qt Widget (for use in Stylesheet)?)

用户会通过单击选择一个小部件(用来做某事),当然单击按钮不能导致按钮的绑定(bind)功能运行。

执行此操作的正确(最抽象、最明智)方法是什么?
(不涉及太多新代码。即;不对每个小部件进行子类化)
Qt 中是否有为此设计的内容?

到目前为止,我能够检索程序中所有小部件的列表(通过调用

QObject.findChildren(QtGui.QWidget)

因此解决方案可以将其纳入。

我目前的可怕想法是;

  • 了解如何在同一时间处理所有应用程序事件功能,而不是在我需要的时候让事件发生申请休眠。
  • 当我需要休眠时,制作一个新的透明小部件,它接收单击鼠标并将其拉伸(stretch)到整个窗口。取坐标单击并找出下面的小部件。
  • 以某种方式创建窗口的新“外壳”实例。

谢谢!
(很抱歉写得糟糕;有点匆忙)


python 2.7.2
PyQt4
Windows 7

最佳答案

您可以使用 QObject::installEventFilter 拦截发送到特定小部件的事件.

关于python - Qt - 暂时禁用所有事件或窗口功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8999490/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com