如何在Qt 5中从QGraphicsScene中获取像素单击或鼠标悬停的RGB值
How could I get the RGB value from QGraphicsScene of a pixel click or hover by mouse in Qt 5?
我正在编写一个应用程序。我需要获取QGraphicsScene中显示的图像的位置,然后获取像素的RGB值。我该怎么做?似乎我需要重写鼠标移动事件,但我不知道该怎么做。如果有一个最小的例子,那就太好了。
我的代码托管在这里。
似乎我需要重写鼠标移动事件,但我不知道如何 点缀它。
覆盖任何其他C++函数的方式相同。有大量的例子,它是使用Qt gui C++ API的重要组成部分。但是,看起来您需要覆盖的不是鼠标移动事件,而是鼠标悬停移动事件:
void hoverMoveEvent(QGraphicsSceneHoverEvent * e) {
// get pixel value at coordinates e->pos();
}
非常方便的是,悬停事件将为您提供相对于项目的位置。
您还必须setAcceptHoverEvents(true)
图形项才能启用鼠标移动事件。
请记住,您只能获取QImage
的像素值。因此,如果您使用的是QPixmap
项目,则每次都必须进行大量转换才能QImage
。创建自己的图形项在内部存储QImage
并在其绘制事件中绘制它,很可能更有效。
相关文章:
- 有没有办法区分Qt小部件是通过鼠标单击还是通过按表键获得焦点?
- 如何在QSplashScreen中禁用鼠标单击
- C++鼠标单击时的屏幕截图不起作用
- 标签检测鼠标单击 c++
- 使用 SFML 在矩形的矢量中查找鼠标单击量
- 如何使用鼠标单击选择多个 QLabel 对象?
- 鼠标单击 OpenGL 时无法围绕其自己的中心旋转对象
- 在鼠标单击Qt时将信号从子级发送到父级
- 如何在后台模拟鼠标单击到 DirectX 应用程序?
- 在OpenGL中,如何将鼠标跟随更改为鼠标单击,拖动并移动释放?
- 使用setWindowShookex()阻止Windows鼠标单击
- 将鼠标单击发送到以管理员身份运行的DirectX游戏
- 如何检查鼠标单击位置是必需的应用程序
- 在调整大小窗口时,如何使用鼠标单击来获取图像的坐标
- 如何在FLTK中使用两个不同的小部件使用键盘箭头和鼠标单击
- 通过鼠标单击绘制多边形
- 鼠标单击背景窗口,而无需移动鼠标C
- 如何在 C++ 中显示通知,当鼠标单击可编辑文本框时
- 发送鼠标单击消息
- 在使用发送输入 API 模拟鼠标单击时是否需要引入延迟