1

我正在学习 QT 编程,我想知道是否有一种简单的方法可以动态地将光标颜色设置为与光标下的颜色完全相反。我假设在编译期间游标的确切形状是未知的,并且游标可以通过资源重载。

只需给我一些大方向,无需为我编写完整的工作代码 :)

谢谢你,亚历克斯

4

1 回答 1

2

我可以建议在 Qt 论坛上查看这个论坛帖子:如何读取 Widget 上像素的颜色?

在这里,他们解释说,在某个像素处获取颜色的最佳方法是使用QImage::pixel(const QPoint & position)函数。此函数返回给定位置的像素颜色。在您的情况下,您需要将此函数传递给鼠标光标的位置。

要跟踪光标的位置,请使用QCursor::pos()函数,或者如果您需要随时跟踪鼠标的位置,您可以根据需要覆盖 QMouseEvent 类中的函数,例如pos() 或 globalPos()

现在,由于您知道光标的位置,光标在特定位置的颜色,您只需创建一个新的QCursor并使用QApplication::changeOverrideCursor(QCursor)和新创建的光标将该光标设置到应用程序中。

其中一些方法的处理时间成本很高,因此我建议您仔细考虑您的应用程序试图实现的目标。

希望能给你一个起点。祝你好运。

于 2012-09-20T07:35:37.417 回答