最近在做一个项目,想加一点“炫”的功能----按钮闪烁(其实就是用定时器控制按钮背景的颜色,你如果有更好的方法,还请告知……
),找了许多资料,都说可以使用QPalette就可以了,可是尝试了几次,发现不行啊,我是这样试的:
QPalette pal = startBtn.palette(); //startBtn是我已经定义好的QPushButton对象
pal.setColor(QPalette::ButtonText, Qt::red); //设置按钮上的字体颜色,理论上可以,实际上就是可以
pal.setColor(QPalette::Button, Qt::green); //设置按钮背景颜色,理论上可以,实际上不可以
startBtn.setPalette(pal);
运行效果
后来又从“度郎”上找到资料说是在windows中QPushButton涉及到样式表,应该设计样式表才可以
QPalette pal = startBtn.palette();
pal.setColor(QPalette::ButtonText, Qt::red); //设置按钮上的字体颜色,理论上可以,实际上就是可以
//pal.setColor(QPalette::Button, Qt::green); //设置按钮背景颜色,理论上可以,实际上不可以
startBtn.setPalette(pal);
startBtn.setStyleSheet("background-color:green");
再次运行,真的可以了,效果图
要将背景颜色设置为最初的颜色之间使用
startBtn.setStyleSheet("");
就可以了。
|