我正在学习QT编程,我想知道是否有一种简单的方法可以动态设置光标颜色,使其与光标下的颜色完全相反。我假设在编译时光标的确切形状是未知的,并且光标可以通过资源重载。
请给我一些总体指示,不需要为我编写完整的代码:)
谢谢你, 亚历
答案 0 :(得分:2)
我建议您在Qt论坛上查看此论坛帖子:How to read a color of a pixel on a Widget?
在这里,他们解释了获得某个像素颜色的最佳方法是使用 QImage :: pixel(const QPoint& position)函数。此函数返回给定位置的像素颜色。在您的情况下,您需要将此功能传递给鼠标光标的位置。
要跟踪光标的位置,请使用 QCursor :: pos()功能,或者如果您需要随时跟踪鼠标的位置,您可以覆盖QMouseEvent类中的函数,例如 pos()或globalPos(),具体取决于您的需求。
现在,既然知道光标的位置,光标在特定位置的颜色,您只需要创建一个新的 QCursor ,并使用 QApplication将光标设置到应用程序中:: changeOverrideCursor(QCursor)使用新创建的光标。
其中一些方法的处理时间很长,因此我建议您仔细考虑应用程序要实现的目标。
希望能给你一个起点。祝你好运。