pyqt5实现按钮添加背景图片以及背景图片的切换方法
作者:pursuit_zhangyu 发布时间:2023-01-11 05:15:32
标签:pyqt5,按钮,背景图片,切换
简介
对与控件QPushButton中的可以使用setStyleSheet设置它背景图片。具体设置背景图片的方法有两种
self.button.setStyleSheet("QPushButton{background-image: url(img/1.png)}")
然而对于这种方法背景图片无法进行边框的自适应,可以使用下面的方法
self.button.setStyleSheet("QPushButton{border-image: url(img/1.png)}")
可以做到自适应边框。
代码
代码里面有两个图片需要使用,我放在下面了
代码1
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。
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_())
如果需要来回的切换,可以定义一个计数器来解决这个问题。
来源:https://blog.csdn.net/pursuit_zhangyu/article/details/83213401


猜你喜欢
- ⭐️网页解析利器parsel实战我们以实际的案例,来具体了解学习其功能。我们在这里重点讲解其两种方式。一个是XPATH,一个是CSS。我们以
- 首先安装WSH,NT(SERVER、WORKSTATION)、W2K服务器上需要安装WSH2.0或者更高版本。然后,参照下列代码即可:<
- Function content_Code(Str) dim ary_String,i,n,n_pos&nbs
- 几种常见的嵌套查询——以学员成绩为例嵌套查询,也称为子查询,是实际工作中经常用到的一种查询方式。子查
- 1.1 计算质数(判断输入)首先我们要明确质数(素数)的含义:所谓质数(素数),是它的因数只有1与它本身,例如2。所以我们可以这样判断一个数
- 前言:Echarts 是百度开源的一款数据可视化 JS 工具,数据可视化类型十分丰富,但是得通过导入 js 库在 Java Web 项目上运
- 1. 搭建项目配置环境和创建表创建一个ttsx的项目django-admin startproject ttsx在ttsx下的__init_
- 在一个比较好的数据集中,比如在分辨不同文字的任务中,一下是几个样本使用VGG19,vol_acc和acc基本是同步保持增长的,比如40/40
- 一、MySQL进阶查询首先先创建两张表mysql -u root -pXXX #登陆数据库,XXX为密码crea
- 所有的前提都需要获取到root权限1.结束mysql进程//Linuxsudo services mysql stop//Macbrew s
- 我们之前写的代码都没有对前端input框输入的数据做验证,我们今天来看下,如果做form表单的数据的验证在views文件做验证首先用文字描述
- 在Python类中规定,函数的第一个参数是实例对象本身,并且约定俗成,把其名字写为self。其作用相当于java中的this,表示当前类的对
- 前言在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能。SEL
- 输出用print加上字符串,就可以向屏幕上输出指定的文字。比如输出'hello, world',用代码实现如下:>&g
- 一、字符集 character字符 character 是各种文字和符号的总称字符编码 character code 是计算机针对各种符号,
- 在防止sql注入这些细节出现问题的一般是那些大意的程序员或者是新手程序员,他们由于没有对用户提交过来的数据进行一些必要的过滤,从而导致了给大
- 我设了个排卖的起始时间然后设了一个结束时间现在要精确到小时比如提示 “离到期时间:1天XX小时”大家有什么想法吗?我就是在小时总是不能实现,
- 动态变量名赋值在使用 tkinter 时需要动态生成变量,如动态生成 var1...var10 变量。使用 exec 动态赋值exec 在
- 假设现在有一个需求将以下 url 保存起来,要求不重复www.baidu.comwww.sina.com.cnwww.hao123.comw
- 带你了解CGO编程大学时最开始学的语言莫过于C/C++,C/C++经过几十年的发展,已经积累了庞大的软件资产,它们很多久经考验而且性能已经足