1.修改鼠标样式
代码如下(示例):
//修改鼠标样式
QString mouseFileName = qApp->applicationDirPath() + '/' + "ConfigurationFile" + '/' + "mouseFile" + '/' + "mouse.png";
QString imagepath;
if(!myCommonlyUsed.FileIsExist(mouseFileName))
imagepath = "://image/mouse.png";
else
imagepath = mouseFileName;
QPixmap pix(imagepath);
QSize size(40,40);
//设置图片大小
pix = pix.scaled(size,Qt::KeepAspectRatio);
this->setCursor(QCursor(pix,pix.height()/8,pix.width()/8)); //设置光标的热点位置
1.效果图
2.修改鼠标点击效果
代码如下(示例):
/***********h头文件*****************/
int mousePressflag = 0;
void mousePressEvent(QMouseEvent *event); //鼠标点击事件
/***********cpp文件*****************/
//鼠标点击事件
void MainWindow::mousePressEvent(QMouseEvent *event)
{
if(event->button()==Qt::LeftButton)
{
if(mousePressflag == 0)
{
mousePressflag = 1;
QLabel *label = new QLabel(this);
label->setAttribute(Qt::WA_DeleteOnClose);
QMovie *movie = new QMovie("://image/Mouse_click_feature.gif");//加载gif图片
//设置label自动适应gif的大小
label->setScaledContents(true);
label->setMovie(movie);
//这里为了调用move方便,进行resize,需要知道的是gif的大小本来也就是150*150
label->resize(180,180);
label->setStyleSheet("background-color:rgba(0,0,0,0);");
//设置鼠标穿透
label->setAttribute(Qt::WA_TransparentForMouseEvents, true);
//让label的中心在当前鼠标双击位置
label->move(event->x()-(label->width()/2),event->y()-(label->height()/2));
//开始播放gif
movie->start();
label->show();
QTimer::singleShot(500, this, [=](){label->close();mousePressflag = 0; delete movie;});
}
}
}