c++ - QGraphicsItem 鼠标中键按下事件

标签 c++ qt mouseevent mouse qgraphicsscene

我在 Linux 上使用 Qt 5.3。我有一个 QGraphicsScene 和一个 QGraphicsItem。在我的 QGraphicsItem 中,我实现了 mousePressEvent、mouseReleaseEvent、mouseMoveEvent 来捕获鼠标事件。

它工作正常,但我必须双击(使用中间按钮)才能获得一个非常奇怪的中间按钮单击事件。我还发现,当没有按下任何按钮时,我不会收到任何鼠标移动事件。

我还在我的 QGraphicsItem 中实现了 sceneEvent,但即使没有按下按钮,它也会错过鼠标移动,并且只有在我双击时才检测到我的中间按钮。我还有一个 Wacom Intuos,它有(物理)右按钮和中间按钮,右按钮可以正常工作,但我还必须双击中间按钮才能获得任何鼠标按下事件。

中间按钮似乎在其他应用程序中有效,并且 xev 正确报告事件。

有什么方法可以使至少鼠标中键正常工作吗?

最佳答案

要接收鼠标移动事件,您必须在窗口中启用鼠标跟踪

setMouseTracking(true);

关于c++ - QGraphicsItem 鼠标中键按下事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29782305/

相关文章:

c++ - boost asio doc中教程的奇怪输出

c++ - 将 C++ 从 Oreilly 书籍转换为 Objective-C 的问题(iOS 3D 编程)

oop - 这种设计模式的名称?

python - 如何通过鼠标中键在QGraphicsView 中滚动QGraphicsScene?

java - 要求java中有关jlabel和parent的一些澄清

c++ - std::map operator[] 并自动创建新对象

c++ - 在不同线程中取消引用指向原子对象的只读非原子指针是否安全?

c++ - Qt 5 在用户输入时播放 wav 声音

qt - QFrame 的样式表影响 QLabel

java - 如何将东西添加到系统托盘并添加 mouseOver() 功能?