在 Qt 中,如果想让 QPushButton 呈现出不同状态下切换背景图的效果,可以直接通过 setStyleSheet 为按钮设置 border-image,并分别定义默认、hover 和 pressed 三种伪状态。下面是"上一曲 / 下一曲"两个图片按钮的示例代码。
/*下一曲*/
ui->pushButton_4->setStyleSheet("QPushButton{border-image: url(icon/ico_42x_Next_disabled.png);}"
"QPushButton:hover{border-image: url(icon/ico_42x_Next_active.png);}"
"QPushButton:pressed{border-image: url(icon/ico_42x_Next_active.png);}");
/*上一曲*/
ui->pushButton_5->setStyleSheet("QPushButton{border-image: url(icon/ico_42x_Previous_disabled.png);}"
"QPushButton:hover{border-image: url(icon/ico_42x_Previous_active.png);}"
"QPushButton:pressed{border-image: url(icon/ico_42x_Previous_active.png);}");