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 相关文章推荐
python通过zlib实现压缩与解压字符串的方法
Nov 19 Python
AI人工智能 Python实现人机对话
Nov 13 Python
[原创]windows下Anaconda的安装与配置正解(Anaconda入门教程)
Apr 05 Python
pip install urllib2不能安装的解决方法
Jun 12 Python
Python 修改列表中的元素方法
Jun 26 Python
Python计算一个点到所有点的欧式距离实现方法
Jul 04 Python
TensorFlow车牌识别完整版代码(含车牌数据集)
Aug 05 Python
Python求正态分布曲线下面积实例
Nov 20 Python
使用OpenCV circle函数图像上画圆的示例代码
Dec 27 Python
Python使用Pyqt5实现简易浏览器(最新版本测试过)
Apr 27 Python
python绘制分布折线图的示例
Sep 24 Python
Python爬虫实战之爬取京东商品数据并实实现数据可视化
Jun 07 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
超神学院:鹤熙已踏入神圣领域,实力不比凯莎弱
2020/03/02 国漫
在PHP中使用XML
2006/10/09 PHP
我的群发邮件程序
2006/10/09 PHP
PHP session常见问题集锦及解决办法总结
2007/03/18 PHP
php 文件上传类代码
2011/08/06 PHP
thinkPHP分页功能实例详解
2017/05/05 PHP
javascript prototype 原型链
2009/03/12 Javascript
Jquery 动态添加按钮实现代码
2010/05/06 Javascript
javascript 四则运算精度修正函数代码
2010/05/31 Javascript
16个最流行的JavaScript框架[推荐]
2011/05/29 Javascript
一行代码告别document.getElementById
2012/06/01 Javascript
jquery.post用法关于type设置问题补充
2014/01/03 Javascript
基于jQuery实现表格的排序
2016/12/02 Javascript
ajax 提交数据到后台jsp页面及页面跳转问题
2017/01/19 Javascript
Vue如何引入远程JS文件
2017/04/20 Javascript
详解webpack自动生成html页面
2017/06/29 Javascript
React-Native实现ListView组件之上拉刷新实例(iOS和Android通用)
2017/07/11 Javascript
vue.js实现简单轮播图效果
2017/10/10 Javascript
JavaScript实现小球沿正弦曲线运动
2020/09/07 Javascript
layui table去掉右侧滑动条的实现方法
2019/09/05 Javascript
微信小程序实现搜索框功能及踩过的坑
2020/06/19 Javascript
微信小程序基于ColorUI构建皮皮虾短视频去水印组件
2020/11/04 Javascript
微信小程序实现多行文字滚动
2020/11/18 Javascript
简单的抓取淘宝图片的Python爬虫
2014/12/25 Python
Python素数检测的方法
2015/05/11 Python
Python2.x与Python3.x的区别
2016/01/14 Python
python使用opencv按一定间隔截取视频帧
2018/03/06 Python
python: line=f.readlines()消除line中\n的方法
2018/03/19 Python
python直接获取API传递回来的参数方法
2018/12/17 Python
获取Pytorch中间某一层权重或者特征的例子
2019/08/17 Python
在HTML5 Canvas中放入图片和保存为图片的方法
2014/05/03 HTML / CSS
商务英语专业应届毕业生求职信
2013/10/28 职场文书
运动会稿件300字
2014/02/14 职场文书
授权委托书格式范文
2014/08/02 职场文书
离职证明范本
2015/06/12 职场文书
十大最强水系宝可梦,最美宝可梦排第三,榜首大家最熟悉
2022/03/18 日漫