前言:懒惰不是我的理由,感觉隔了一万年没有写新的东西了。有关改变控件背景图片的需求,比如说:点击一个按钮,其他按钮背景发生变化,一点控件背景图亮一点,一些暗一点。
背景:当时有两个想法,一个是将所有图片重新做,图片亮度亮一些或者暗一些,但是太浪费时间和人工,所以就有了第二个想法,将两张透明的,一张白色亮度高一些,一张透明的灰黑色的叠加上去就行了。于是就诞生了setStyleSheet的background-image,border-image,image有什么区别的疑问。
解决疑问:background-image:不能改变图片的大小。border-imgae:根据控件的大小来改变自身图片的大小,image:跟border-image一样的效果,可以用于叠加在border-image作用下的图片上。三种属性可依次叠加,border-image叠加在background-image上面,image叠加在image上。
想法:用background-image添加背景图,点击按钮发生状态变化,用border-image叠加背景高亮图片,鼠标悬停和按下,控件状态都发生变化,
用image叠加发生变化。
m_keyFunc->setStyleSheet("background-image:url(:/image/KEY_Func.png);QWidget#KEY_FUN QPushButton:pressed{image:url(:/image/KEY_Fun_Pressed.png);};QWidget#KEY_FUN QPushButton:hover:!pressed{image:url(:/image/KEY_Fun_Hover.png);}");
槽函数:
m_keyFunc->setStyleSheet("border-image:url(:/image/White.png)");