效果:
步骤:
1、Qt Designer中新建UI,命名为:带图片按钮.UI;
2、在UI的背景处点击右键,改变样式表,添加颜色,设定背景色;
3、 Photoshop创建几个PNG图片,大小与需要的按钮尺寸一致,背景色为透明色;
4、Qt Designer中点击”编辑资源“按钮:
5、新建资源文件icons.qrc
6、添加前缀buttons
7、逐个添加之前创建的PNG图片,至此已将图片资源引入。以上步骤不清楚的,可参照pyqt5插入图片的两种方法(引入资源和不引入资源)超详细_pyqt5 图片_沂水弦音的博客-CSDN博客
8、新建label,尺寸260*70,字体黑体20,样式表内容:
background-color:#4b5075;
border:2px solid rgb(43, 78, 140);
border-radius:8px;
color:#e6e6e6;
9、label的“改变样式表”,“添加资源”,“image”,选择之前引入的图片资源
10、在Qt Designer中的显示效果如下:
11、新建python文件,用PyRcc转换并导入图片资源。PyRcc的安装和使用,前面的连接里面也有。
后记:之前做了很多这种从头到尾都是自定义的部件,一方面是刚刚接触python编程,希望多一些实践,另一方面是深层次的知识掌握太少,只能用笨办法。
比如自定义的按钮,如果使用CSS的伪状态就会方便很多。
常用的伪状态:
:hover
:表示鼠标悬停在按钮上时的状态。:pressed
:表示按钮被按下时的状态。:disabled
:表示按钮被禁用时的状态。:checked:hover
:表示按钮被选中且鼠标悬停在按钮上时的状态。:checked:pressed
:表示按钮被选中且被按下时的状态。:checked:disabled
:表示按钮被选中且被禁用时的状态。
使用伪状态的好处是,在利用样式表定义部件的不同状态时,单独定义需要改变的特性即可。比如一个按钮,定义了背景色、边框等特性,在鼠标悬停时只需要改变背景色,别的特性无需改变,如果用setStyleSheet()的方法,就需要把所有的特性全部重新定义一遍。使用伪状态,就只需把背景色单独定义即可。
下面是一个范例:
在Qt Designer中新建一个PushButton,在右键-改变样式表,输入:
QPushButton {
/* 其他样式特性 */
background-color: rgba(255, 255, 255, 0);
color: white;
image: url(:/新前缀/PYS/exit.png);
}
QPushButton:hover {
/* 鼠标悬停时的样式 */
border:2px solid rgb(43, 78, 140);
border-radius:10px;
}
QPushButton:pressed {
/* 按下鼠标键时的样式 */
border:1px solid orange;
border-radius:10px;
background-color:#4b5075;
}
这样就简单完成了一个自定义的按钮。
效果: