QWidget的cursor属性
cursor属性可以设置当鼠标指向不同控件,不同窗口会产生不同的效果。
API | 说明 |
---|---|
cursor() | 获取到当前 widget 的 cursor 属性, 返回 QCursor 对象. 当⿏标悬停在该 widget 上时, 就会显⽰出对应的形状. |
setCursor(const QCursor& cursor) | 设置该 widget 光标的形状. 仅在⿏标停留在该 widget 上时⽣效. |
QGuiApplication::setOverrideCursor(co nst QCursor& cursor) | 设置全局光标的形状. 对整个程序中的所有 widget 都会⽣效. 覆盖上⾯的 setCursor 设置的内容. |
注意:
前俩个函数是widget级别的,即在同一个界面中,不同的控件可以设置成不同的光标
最后一个函数设置全局光标(程序内的全局,而不是系统级别的全局)
例子:在 Qt Designer 中设置按钮的光标
1.在Qt Creator属性区可以进行修改:
2.使用代码的方式
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
QCursor cursor(Qt::WaitCursor);
ui->pushButton->setCursor(cursor);
}
Widget::~Widget()
{
delete ui;
}
使用ctrl+鼠标左键点击WaitCUrsor,会显示内置的光标。
Qt内置的光标
设置自定义图标
Qt允许通过自定义的图片来设置光标。
先准备一个图片,把图片导入到项目中(qrc管理)
在代码中访问到这个图片,基于这个图片构造出光标对象并设置。
通过QPixmap这个对象表示一个图片
这个默认情况下,鼠标点击时,相当于图片的左上角(0,0)在进行点击。
可以在构造函数添加俩个参数,这俩个参数表示热点,即所在的位置。
以图片左上角(0,0)为原点,找到(10,10)这个位子作为鼠标真正点击的位置。
可以通过这个函数对图片进行缩放,以达到更好的效果。
【注意】注意缩放不是修改图片对象本身,而是返回一个新的图片对象副本。
矢量图标网址
【安利一个网址】阿里巴巴矢量图标库(免费下载的)