在用 Python (PyQt5)做图形界面开发时,如果我们要手动实现一个带有刷新图标的按钮时,那么就要用到在按钮上添加图片的功能,下面将直接介绍实现方法:

方法一、为按钮添加样式 setStyleSheet

  • 设置background-image
button = QPushButton()
img_path = ''	# 图片路径
button.setStyleSheet("QPushButton{\n"
"background-image: url(\"%s\");\n"
"background-position:center;\n"
"background-repeat:no-repeat;\n"
"}" % img_path)
# background-image: url(\"%s\") 为设置的图片路径
# background-position:center 设置图片位置
# background-repeat:no-repeat 设置图片不重复

 注意:该方式需要将图片大小预先调整好,因为background-image不会去自适应按钮大小

  • 设置border-image
button = QPushButton()
img_path = ''	# 图片路径
button.setStyleSheet("QPushButton{\n"
"border-image: url(\"%s\");\n"
"}" % img_path)
# border-image: url(\"%s\") 为设置的图片路径

 该方法可以将图片直接自适应按钮大小,不需要调整图片,方便简洁。(但我在Mac上使用该方法时,点击按钮没有按钮动作,可以触发事件,问题待排查)

方法二、设置图片Icon setIcon

from PyQt5 import QtCore, QtGui, QtWidgets
button = QPushButton()
img_path = ''	# 图片路径
button.setIcon(QtGui.QIcon(img_path))
button.setIconSize(QtCore.QSize(25, 25))	# 设置icon大小

 该方法也不需要调整图片大小,可以自适应适配。
但我在Mac上仍然出现了该问题: 点击button无按钮效果,可以触发事件

对与控件QPushButton中的可以使用setStyleSheet设置它背景图片。具体设置背景图片的方法有两种 self.button.setStyleSheet(QPushButton{background-image: url(img/1.png)}) 然而对于这种方法背景图片无法进行边框的自适应,可以使用下面的方法 self.button.setStyleSheet(QPushButton{border-image: url(img/1.png)}) 可以做到自适应边框。 代码里面有两个图片需要使用,我放在下面了 import sys from Py
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、引入资源文件插入图片1.打开Qt设计页面2.打开资源文件管理器3.新建资源文件夹4.添加前缀5.资源插入前缀6.插入图片至页面7.将图片转化为代码二、使用步骤1.引入库2.读入数据总结 这次在做一个项目的时候深有体会,想把所学的都记录下来,也希望同时能够帮助到大家!!! 提示:以下是本篇文章正文内容,下面案例可供参考 一、引入资源文件插入图片 1.打开Qt设计页面 2.打开资源文件管理器 3.新建资源文件夹 图片的载体 图片必须通过lable的形式贴到程序中,需要在相应位置生成lable组件 self.label = QtWidgets.QLabel(self.groupBox_3) self.label.setGeometry(QtCore.QRect(13, 128, 601, 421)) self.label.se
emsp;emsp;很多时候在界面设计中,我们需要导入自己预先设计好的图片。那具体是怎么实现呢?这篇文章会给你答案的! 一、QT5导入自己的图片 emsp;emsp; 说明:使用环境为windows10+Qt Creator 4.8.0+Qt 5.12 点击左上角“文件”,再点击“新建文件或项目” 在弹出的框中左列选择“Qt”,中间列选择Qt Resource File,点击右下角choose 设置名称和路径(路径就选择想要导入的文件夹即可),点击“下一步”: 出现以下界面后,点击右下角
```python from PyQt5.QtWidgets import QApplication, QPushButton from PyQt5.QtGui import QPixmap class MyWindow(QWidget): def __init__(self): super().__init__() self.init_ui() def init_ui(self): button = QPushButton("点击我") button.setGeometry(50, 50, 200, 50) # 设置按钮尺寸 # 加载背景图片,并将其作为CSS样式应用于按钮 pixmap = QPixmap('your_image_path.jpg') # 替换为你的图片路径 if pixmap.isNull(): print("图片加载失败") else: styleSheet = f"background-image: url({pixmap.toImage().toDataUrl()});\n" \ "border: none;\n" \ "padding: 0; margin: 0;\n" \ "min-width: max-content; min-height: max-content;" # 自适应大小 button.setStyleSheet(styleSheet) self.show() if __name__ == '__main__': app = QApplication([]) my_window = MyWindow() app.exec_() 在这个例子中,首先加载图片,如果图片存在,则将图片数据转换为DataURL格式并添加到CSS样式里。`min-width`和`min-height`属性用于让按钮的内容区域自适应图片大小。