繁体   English   中英

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

[英]How to change the cursor in Qt C++

如何将光标更改为本地计算机中的图像? 我已经按照本教程进行代码参考: 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();

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM