【问题标题】:How to change the cursor in Qt C++如何在 Qt C++ 中更改光标
【发布时间】:2020-02-26 09:10:37
【问题描述】:

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

【问题讨论】:

标签: c++ qt cursor


【解决方案1】:

在你的 .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);

【讨论】:

    【解决方案2】:

    我认为你应该使用 QCursor 类,一旦鼠标在图像内,你可以使用函数 setShape() 修改其形状。

    如文档所述:

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

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

    【讨论】:

      【解决方案3】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-12
        • 1970-01-01
        • 1970-01-01
        • 2011-05-15
        相关资源
        最近更新 更多