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使用clear方法清除字典内全部数据实例
Jul 11 Python
Python之str操作方法(详解)
Jun 19 Python
python实现机械分词之逆向最大匹配算法代码示例
Dec 13 Python
Django自定义manage命令实例代码
Feb 11 Python
Python 使用PIL中的resize进行缩放的实例讲解
Aug 03 Python
Linux CentOS Python开发环境搭建教程
Nov 28 Python
Python lambda表达式用法实例分析
Dec 25 Python
Python3 log10()函数简单用法
Feb 19 Python
python实现基于朴素贝叶斯的垃圾分类算法
Jul 09 Python
python高阶函数map()和reduce()实例解析
Mar 16 Python
使用SQLAlchemy操作数据库表过程解析
Jun 10 Python
Python re.sub 反向引用的实现
Jul 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
php 编写安全的代码时容易犯的错误小结
2010/05/20 PHP
php简单的留言板与回复功能具体实现
2014/02/19 PHP
Yii2组件之多图上传插件FileInput的详细使用教程
2016/06/20 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
使用jquery解析XML的方法
2014/09/05 Javascript
JavaScript字符串对象slice方法入门实例(用于字符串截取)
2014/10/16 Javascript
jQuery实现流动虚线框的方法
2015/01/29 Javascript
Eclipse引入jquery报错如何解决
2015/12/01 Javascript
CKEditor无法验证的解决方案(js验证+jQuery Validate验证)
2016/05/09 Javascript
JavaScript实现移动端滑动选择日期功能
2016/06/21 Javascript
两种简单的跨域方法(jsonp、php)
2017/01/02 Javascript
Vue.js实战之Vuex的入门教程
2017/04/01 Javascript
一个Js文件函数中调用另一个Js文件函数的方法演示
2017/08/14 Javascript
推荐10款扩展Web表单的JS插件
2017/12/25 Javascript
浅谈Vue路由快照实现思路及其问题
2018/06/07 Javascript
js数组去重的方法总结
2019/01/18 Javascript
微信小程序 点击切换样式scroll-view实现代码实例
2019/10/11 Javascript
JsonProperty 的使用方法详解
2019/10/11 Javascript
JavaScript如何判断input数据类型
2020/02/06 Javascript
python实现简单点对点(p2p)聊天
2017/09/13 Python
python3.x 将byte转成字符串的方法
2018/07/17 Python
python循环输出三角形图案的例子
2019/11/22 Python
Python计算机视觉里的IOU计算实例
2020/01/17 Python
Python如何将函数值赋给变量
2020/04/28 Python
python3代码中实现加法重载的实例
2020/12/03 Python
CSS3网格的三个新特性详解
2014/04/04 HTML / CSS
塔吉特百货公司官网:Target
2017/04/27 全球购物
Scotch Porter官方网站:男士美容产品
2020/08/31 全球购物
网络通讯中,端口有什么含义,端口的取值范围
2012/11/23 面试题
Linux Interview Questions For software testers
2012/06/02 面试题
安全生产管理责任书
2014/04/16 职场文书
人身意外保险授权委托书
2014/10/01 职场文书
家长会开场白和结束语
2015/05/29 职场文书
小组组名及励志口号
2015/12/24 职场文书
85句关于理想的名言警句大全
2019/08/22 职场文书
python如何在word中存储本地图片
2021/04/07 Python