大家都知道,如果想给控件加样式的话就得用到setStyleSheet这个函数,还需要用到事件过滤函数eventFilter来进行状态不同的切换,这样写的有一个不好的地方,那就是代码很臃肿,有个解决办法就是用QSS。
1.首先写一个QSS文件,里面主要用到的就是CSS语句,语法是#类名#控件类#对象名:状态
#MasWidget>QPushButton#smallButton
{
border-image: url(:/img/minBut.png);
}
#MasWidget>QPushButton#smallButton:hover
{
border-image: url(:/img/minButRoll.png);
}
#MasWidget>QPushButton#smallButton:pressed
{
border-image: url(:/img/minButUp.png);
}
2.然后在.pro文件中加入qss文件,语法是OTHER_FILES += app.qss
3.最后就是在程序里面调用了,最好是写在main函数里面
QFile style("app.qss");
if(!style.open(QIODevice::ReadOnly))
{
qDebug("open app.qss no!");
return;
}
app->setStyleSheet(style.readAll());
这样做的话,不仅节省了很多代码,而且程序也更清晰明了,样式与功能就很巧妙的分开了。