3

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

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

  • 鼠标在小部件 A 可见时单击它
  • 鼠标移动到 x, y(实时)
  • 鼠标释放

到任意小部件?


现在我正在尝试按类来执行此操作A,它继承QAbstractItemView并拥有一个QWidget. 但是,没有任何效果和

NotImplementedError:QAbstractItemView.verticalOffset() 是抽象的,必须重写

4

1 回答 1

2

QAbstractItemView对您的任务没有帮助。

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

另一种选择是子类QWidget化(或任何其他 QWidget 派生类)并重新实现其mousePressEvent,mouseMoveEventmouseReleaseEventvirtual 函数。

于 2013-06-20T13:11:19.337 回答