gpt4 book ai didi

qt - 如何捕获任意 QWidget 上的鼠标事件?

转载 作者:行者123 更新时间:2023-12-04 10:26:09 24 4
gpt4 key购买 nike

我正在使用 PythonQt 构建一个 GUI。标准小部件非常有用,开箱即用。但是,我对鼠标手势有一些想法。更准确地说,一个按钮或标签或文本,在被点击并按住鼠标后,四处移动鼠标具有特殊效果。

需要为以下事件添加鼠标支持

  • 鼠标在小部件 A 可见时点击它
  • 鼠标移动到 x, y(实时)
  • 松开鼠标

到任意小部件?


现在我正尝试通过 A 类来完成此操作,它继承了 QAbstractItemView 并拥有一个 QWidget。但是,没有任何效果 AND

NotImplementedError: QAbstractItemView.verticalOffset() is abstract and must be overridden

最佳答案

QAbstractItemView 对您的任务没有帮助。

您可以使用 installEventFilter 在任意小部件上安装事件过滤器。你的过滤器类必须继承自 QObject。该文档包含一些有用的示例。参见 QObject::installEventFilter .如果您想一次在所有小部件上安装过滤器,您可以为 QApplication 实例安装它。

另一种选择是继承 QWidget(或任何其他 QWidget 派生类)并重新实现其 mousePressEventmouseMoveEventmouseReleaseEvent 虚函数。

关于qt - 如何捕获任意 QWidget 上的鼠标事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17214329/

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