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


Posted in Python onJune 13, 2019

简介

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

self.button.setStyleSheet("QPushButton{background-image: url(img/1.png)}")

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

self.button.setStyleSheet("QPushButton{border-image: url(img/1.png)}")

可以做到自适应边框。

代码

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

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

代码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_())

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

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

Python 相关文章推荐
解决windows下Sublime Text 2 运行 PyQt 不显示的方法分享
Jun 18 Python
python 使用re.search()筛选后 选取部分结果的方法
Nov 28 Python
Python基于scipy实现信号滤波功能
May 08 Python
django+tornado实现实时查看远程日志的方法
Aug 12 Python
python多线程分块读取文件
Aug 29 Python
Python高级特性——详解多维数组切片(Slice)
Nov 26 Python
下载与当前Chrome对应的chromedriver.exe(用于python+selenium)
Jan 14 Python
Django 项目通过加载不同env文件来区分不同环境
Feb 17 Python
Python unittest 自动识别并执行测试用例方式
Mar 09 Python
解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题
Apr 27 Python
python能开发游戏吗
Jun 11 Python
Python从文件中读取数据的方法步骤
Nov 18 Python
Python语法分析之字符串格式化
Jun 13 #Python
pyqt5 从本地选择图片 并显示在label上的实例
Jun 13 #Python
通过pycharm使用git的步骤(图文详解)
Jun 13 #Python
Windows 安装 Anaconda3+PyCharm的方法步骤
Jun 13 #Python
python读取目录下所有的jpg文件,并显示第一张图片的示例
Jun 13 #Python
在Pycharm中使用GitHub的方法步骤
Jun 13 #Python
python 实现在tkinter中动态显示label图片的方法
Jun 13 #Python
You might like
PHP 变量类型的强制转换
2009/10/23 PHP
PHP中批量生成静态html(命令行下运行PHP)
2014/04/19 PHP
Nginx环境下PHP flush失效的解决方法
2016/10/19 PHP
OAuth认证协议中的HMACSHA1加密算法(实例)
2017/10/25 PHP
jQuery EasyUI API 中文文档 - ProgressBar 进度条
2011/09/29 Javascript
基于jquery的当鼠标滚轮到最底端继续加载新数据思路分享(多用于微博、空间、论坛 )
2011/10/10 Javascript
Jquery promise实现一张一张加载图片
2015/11/13 Javascript
探讨:JavaScript ECAMScript5 新特性之get/set访问器
2016/05/05 Javascript
jQuery选择器及jquery案例详解(必看)
2016/05/20 Javascript
用JS写的一个Ajax库(实例代码)
2016/08/06 Javascript
学习vue.js条件渲染
2016/12/03 Javascript
bootstrapValidator bootstrap-select验证不可用的解决办法
2017/01/11 Javascript
js实现二级导航功能
2017/03/03 Javascript
jQuery滚动插件scrollable.js用法分析
2017/05/25 jQuery
JavaScript实现鼠标滚轮控制页面图片切换功能示例
2017/10/14 Javascript
vue2.0 可折叠列表 v-for循环展示的实例
2018/09/07 Javascript
一篇文章带你使用Typescript封装一个Vue组件(简单易懂)
2020/06/05 Javascript
分享给Python新手们的几道简单练习题
2017/09/21 Python
Python根据已知邻接矩阵绘制无向图操作示例
2018/06/23 Python
Python批量修改图片分辨率的实例代码
2019/07/04 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
2019/08/31 Python
PyTorch中 tensor.detach() 和 tensor.data 的区别详解
2020/01/06 Python
TensorFLow 数学运算的示例代码
2020/04/21 Python
Python实现读取并写入Excel文件过程解析
2020/05/27 Python
PyQt5实现画布小程序
2020/05/30 Python
安纳塔拉酒店度假村及水疗官方网站:Anantara Hotel
2016/08/25 全球购物
Maje德国官网:法国女性成衣品牌
2017/02/10 全球购物
介绍一下gcc特性
2012/01/20 面试题
成人大专生实习期的自我评价
2013/10/02 职场文书
旅游专业职业生涯规划范文
2014/01/13 职场文书
伊琍体标语
2014/06/25 职场文书
我心目中的好老师活动方案
2014/08/19 职场文书
2015年化验室工作总结
2015/04/23 职场文书
甲午风云观后感
2015/06/02 职场文书
Python Matplotlib绘制动画的代码详解
2022/05/30 Python
Win11 22H2 2022怎么更新? 获得Win1122H22022版本升级技巧
2022/09/23 数码科技