我正在使用Python
和Qt
构建GUI。标准小部件非常有用,开箱即用。但是,我对鼠标手势有一些想法。更准确地说,一个按钮或标签或文本,在点击鼠标按住鼠标后,将鼠标移动到周围会产生特殊效果。
为以下事件添加鼠标支持需要什么
到任意小部件?
现在我正在尝试通过类A
执行此操作,该类继承QAbstractItemView
并拥有QWidget
。然而,没有任何作用和
NotImplementedError:QAbstractItemView.verticalOffset()是抽象的,必须重写
答案 0 :(得分:2)
QAbstractItemView
对您的任务没有帮助。
您可以使用installEventFilter
在任意窗口小部件上安装事件过滤器。您的过滤器类必须从QObject继承。该文档包含一些有用的示例。见QObject::installEventFilter。如果要一次在所有小部件上安装过滤器,可以为QApplication
实例安装过滤器。
另一种选择是子类QWidget
(或任何其他QWidget派生类)并重新实现其mousePressEvent
,mouseMoveEvent
和mouseReleaseEvent
虚函数。