Qt如何改变鼠标形状

在Windows平台开发的软件,经常会有这样的需求,当鼠标移动到某个组件或者某个区域的时候,鼠标需要变成特定的形状,现在介绍如何实现鼠标的形状变化。

 

一、利用Qt自带的资源修改鼠标形状

1、确定坐标范围,在坐标(0 ~ width,0 ~ height)范围内改变鼠标形状

QPoint mousepos = e->pos();

int width = 1000;

int height = 1000;

if( ((mousepos.rx() > 0) && (mousepos.rx() < width))

        && ((mousepos.ry() > 0) && (mousepos.ry() < height)) )

{

        this->setCursor(Qt::CrossCursor);    /* 鼠标为十字形 */

}

  1. setCursor()方法用来改变鼠标的形状,指定不同的参数,会显示不同的形状,具体请参考以下值。

以下请参考Qt的帮助文件。

Qt如何改变鼠标形状_第1张图片

 

二、自定义修改鼠标形状

实现一个自定义鼠标形状,当鼠标放到指定控件上,就显示一个小红点。

1、定义一个光标变量

QCursor cCursor;

2、制作一个红色的原形图片,命名为“redPoint.png”并保存,定义一个QPixmap ,加载这个图片

QPixmap cMap(":/new/prefix1/images/redPoint.png");

3、设置图片大小

QSize cSize(20, 20);          

4、设置图片可以自适应调整

QPixmap cScaleMap = cMap.scaled(cSize, Qt::KeepAspectRatio);

5、将鼠标的光标绑定到“widget”控件上,这样当鼠标移动到该控件上后,就显示一个红色的圆圈。

cCursor = QCursor(cScaleMap);

ui->widget->setCursor(cCursor);

你可能感兴趣的:(QT&QML)