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中的各种函数的使用
May 24 Python
Python的Django框架中TEMPLATES项的设置教程
May 29 Python
分析Python中设计模式之Decorator装饰器模式的要点
Mar 02 Python
Python用list或dict字段模式读取文件的方法
Jan 10 Python
python使用fcntl模块实现程序加锁功能示例
Jun 23 Python
Python内置函数—vars的具体使用方法
Dec 04 Python
python2.6.6如何升级到python2.7.14
Apr 08 Python
django admin 后台实现三级联动的示例代码
Jun 22 Python
Python初学者需要注意的事项小结(python2与python3)
Sep 26 Python
简单了解python的break、continue、pass
Jul 08 Python
解决import tensorflow as tf 出错的原因
Apr 16 Python
教你用python实现12306余票查询
Jun 30 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
Zend Framework中的简单工厂模式 图文
2012/07/10 PHP
php环境下利用session防止页面重复刷新的具体实现
2014/01/09 PHP
php sybase_fetch_array使用方法
2014/04/15 PHP
ThinkPHP中自定义目录结构的设置方法
2014/08/15 PHP
微信公众平台接口开发入门示例
2014/12/24 PHP
php及codeigniter使用session-cookie的方法(详解)
2017/04/06 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
php无限级分类实现评论及回复功能
2019/02/18 PHP
javascript appendChild,innerHTML,join性能比较代码
2009/08/29 Javascript
在javascript中执行任意html代码的方法示例解读
2013/12/25 Javascript
AngularJS的内置过滤器详解
2015/05/14 Javascript
bootstrap3 兼容IE8浏览器!
2016/05/02 Javascript
BootStrap智能表单实战系列(三)分块表单配置详解
2016/06/13 Javascript
AngularJS基础 ng-mousemove 指令简单示例
2016/08/02 Javascript
Bootstrap按钮功能之查询按钮和重置按钮
2016/10/26 Javascript
详解vue.js的事件处理器v-on:click
2017/06/27 Javascript
Three.js基础学习教程
2017/11/16 Javascript
vue axios请求超时的正确处理方法
2018/04/02 Javascript
Python实现的中国剩余定理算法示例
2017/08/05 Python
使用Turtle画正螺旋线的方法
2017/09/22 Python
python使用PyCharm进行远程开发和调试
2017/11/02 Python
python 读写文件,按行修改文件的方法
2018/07/12 Python
实例介绍Python中整型
2019/02/11 Python
Python进阶之全面解读高级特性之切片
2019/02/19 Python
python抓取搜狗微信公众号文章
2019/04/01 Python
Django框架模板文件使用及模板文件加载顺序分析
2019/05/23 Python
Flask框架学习笔记之路由和反向路由详解【图文与实例】
2019/08/12 Python
英国领先的运动物理治疗供应公司:Vivomed
2018/07/14 全球购物
卡骆驰德国官方网站:Crocs德国
2019/03/29 全球购物
老师自我鉴定范文
2013/12/25 职场文书
元旦晚会上单位领导演讲稿
2014/01/05 职场文书
黄金酒广告词
2014/03/21 职场文书
2015年前台个人工作总结
2015/04/03 职场文书
2016年教师政治思想表现评语
2015/12/02 职场文书
golang中的并发和并行
2021/05/08 Golang
python pygame入门教程
2021/06/01 Python