pyqt5实现按钮添加背景图片以及背景图片的切换方法

时间:2022-12-05 20:49:42

简介

对与控件qpushbutton中的可以使用setstylesheet设置它背景图片。具体设置背景图片的方法有两种

?
1
self.button.setstylesheet("qpushbutton{background-image: url(img/1.png)}")

然而对于这种方法背景图片无法进行边框的自适应,可以使用下面的方法

?
1
self.button.setstylesheet("qpushbutton{border-image: url(img/1.png)}")

可以做到自适应边框。

代码

代码里面有两个图片需要使用,我放在下面了

pyqt5实现按钮添加背景图片以及背景图片的切换方法

代码1

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import sys
from pyqt5.qtwidgets import qapplication, qwidget, qpushbutton
 
class example(qwidget):
 
 def __init__(self):
  super().__init__()
 
  self.initui() # 界面绘制交给initui方法
 
 def initui(self):
  # 设置窗口的位置和大小
  self.setgeometry(300, 300, 300, 220)
  # 设置窗口的标题
  self.setwindowtitle('qpushbutton')
 
  #控件qpushbutton的定义和设置
  self.button = qpushbutton(self)
  self.button.setstylesheet("qpushbutton{border-image: url(img/1.png)}"
         "qpushbutton:hover{border-image: url(img/1_1.png)}"
         "qpushbutton:pressed{border-image: url(img/1_1.png)}")
  #设置控件qpushbutton的位置和大小
  self.button.setgeometry(100, 100, 50, 50)
 
 
 
 
if __name__ == '__main__':
 # 创建应用程序和对象
 app = qapplication(sys.argv)
 ex = example()
 ex.show()
 sys.exit(app.exec_())

具体实现了按钮背景图片,以及鼠标划过按钮的背景切换,以及按下按钮的背景切换。

然而在按下按钮,我需要直接进行图片切换,且不回到原来的背景上。可以参考我的代码2。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import sys
from pyqt5.qtwidgets import qapplication, qwidget, qpushbutton
 
 
class example(qwidget):
 
 def __init__(self):
  super().__init__()
 
  self.initui() # 界面绘制交给initui方法
  self.slot_init()
 
 def initui(self):
  # 设置窗口的位置和大小
  self.setgeometry(300, 300, 300, 220)
  # 设置窗口的标题
  self.setwindowtitle('qpushbutton')
 
  #控件qpushbutton的定义和设置
  self.button = qpushbutton(self)
  self.button.setstylesheet("qpushbutton{border-image: url(img/1.png)}"
         "qpushbutton:hover{border-image: url(img/1_1.png)}")
 
  # 设置控件qpushbutton的位置和大小
  self.button.setgeometry(100, 100, 50, 50)
 
 def slot_init(self):
  self.button.clicked.connect(self.button_change)
 
 def button_change(self):
  # 切换图标变亮
  self.button.setstylesheet('qpushbutton{border-image:url(img/1_1.png)}')
 
 
 
if __name__ == '__main__':
 # 创建应用程序和对象
 app = qapplication(sys.argv)
 ex = example()
 ex.show()
 sys.exit(app.exec_())

如果需要来回的切换,可以定义一个计数器来解决这个问题。

以上这篇pyqt5实现按钮添加背景图片以及背景图片的切换方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/pursuit_zhangyu/article/details/83213401