如何在Qt C++中更改光标

How to change the cursor in Qt C++

本文关键字:光标 C++ Qt      更新时间:2023-10-16

如何将光标更改为本地机器中的图像?我遵循本教程进行代码参考:http://www.newthinktank.com/2018/07/qt-tutorial-5-paint-app/

在你的.qrc文件中试试这个:

<RCC>
<qresource prefix="/">
<file>cursors/my_cursor.png</file>
</qresource>
</RCC>

然后这样编程:

QPixmap p = QPixmap(":my_cursor");
QCursor c = QCursor(p, 0, 0);
setCursor(c);

我认为你应该使用类QCursor,一旦鼠标进入图像,你就可以使用函数setShape((修改它的形状。

如文件所示:

要将光标与小部件关联,请使用QWidget::setCursor((。到将光标与所有小部件关联(通常为时间(,使用QGuiApplication::setOverrideCursor((。

要设置光标形状,请使用QCursor::setShape((或使用QCursor构造函数,它将形状作为参数,或者您可以使用Qt::CursorShape枚举中定义的预定义游标。

您可以在稳定的基础上临时更改光标

稳定方式意味着光标按原样设置。使用QWidget::setCursor()。注意,应用此项的对象必须是QWidget。

临时方式覆盖永久光标当你这样做的时候QGuiApplication::setOverrideCursor(QCursor(/* your cursor here */));将此光标添加到堆栈的顶部。如果放置了几个光标,同时弹出它们,我们会以相反的顺序得到它们。要弹出光标,我们需要:QGuiApplication::restoreOverrideCursor();

仅仅一次改变或来回摆动并不重要,但如果光标有可能堆积,这将很重要。