簡體   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