Qt 实现按钮点击切换按钮图片

最近在做一个课程设计(智能家居管家),因为控制要用到门,灯,警报等一系列至少拥有两个状态的物品,所以想弄一个切换图片的效果,点击按钮一次,按钮上的图片切换成另一个图片(另一个状态),再次点击切换回去。

用到Qt中一个很强大的方法 setStyleSheet,先给按钮一个初始的border图片,可以直接用ui设计工具   

 

Qt 实现按钮点击切换按钮图片_第1张图片              Qt 实现按钮点击切换按钮图片_第2张图片

 

将资源文件添加至resouce后,可以用上图方法将按钮变成图片(设置border-image),注意清空文字

当然也可以在构造函数中生成QPushButton后,用类似

 ui->my_button->setStyleSheet("QPushButton{border-image: url(:/new/icon/初始.png);border:none;color:rgb(255, 255, 255);}")方法设置border-image

设置好初始图片后,进入按钮点击槽函数 on_my_button_clicked()

ui->my_button->setStyleSheet("QPushButton{border-image: url(:/new/icon/更新.png);border:none;color:rgb(255, 255, 255);}")

即可完成切换,可以在类中声明静态变量记录点击次数,从而根据点击次数修改成想要的图片

 

需要注意的事,需要将图片的资源文件添加至文件夹下,url括号内填写resourses内的图片路径即可

 

补充;如果需要鼠标放在按钮上图片变化,可以在setStyleSheet 继续添加

QPushButton:hover

如果是按压按钮(不松手),添加QPushButton:pressed

你可能感兴趣的:(qt)