1. 介绍
上图为Qt的官方文档,我们提取其中内容进行总结:
- 这个属性定义了小部件的光标形状。当鼠标悬停在该小部件上时,光标将采用此形状。预定义的光标对象列表提供了一系列有用的形状。
该属性有下面四种接口:
API | 说明 |
---|---|
QCursor cursor() const | 获取小部件的当前光标对象。如果未设置光标,则返回父窗口的光标对象或默认的箭头光标对象 |
void setCursor(const QCursor &) | 设置小部件的当前光标对象为给定的光标对象 |
void unsetCursor() | 清除小部件的当前光标对象并恢复父窗口的光标对象或默认的箭头光标对象 |
QGuiApplication::setOverrideCursor() | 设置一个全局的光标对象,该光标对象会覆盖所有小部件和窗口的当前光标对象,即使鼠标移动到窗口外部,该光标对象仍然有效 |
2. 使用实例
设置窗口光标
- 我们首先添加资源文件,并添加图片。
- 随后根据下面的代码,进行光标的设置:
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
// 获取图片文件
QPixmap pixmap("://cursor1.png");
pixmap = pixmap.scaled(50, 50); // 设置图片(光标)大小
// 构造光标对象
QCursor cursor(pixmap, 10, 10);
// 设置光标
this->setCursor(cursor);
}
效果展示:
全局光标
如果我们加上一句: qApp->setOverrideCursor(cursor);
此时,光标就会变为全局的:
3. 代码 / 文件资源
上面涉及到的的代码等文件资源在👇