PyQt5是Python的一种GUI开发框架,可以用来开发在Windows、Linux和MacOS操作系统上的图形化界面应用程序。同时,PyQt5也提供了许多常用的UI组件,其中包括按钮。
本文将介绍如何使用PyQt5制作一个带图片的按钮。具体步骤如下:
步骤一:安装PyQt5
在使用PyQt5前,需要安装PyQt5模块。一般可以通过pip命令进行安装。
pip install PyQt5
步骤二:创建按钮
使用PyQt5,可以通过QPushButton类来创建按钮。以下是创建一个普通按钮的代码示例:
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
from PyQt5.QtGui import QIcon
import sys
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 创建一个按钮
btn = QPushButton("Button", self)
btn.setToolTip('这是一个普通按钮') # 鼠标悬停在按钮上时显示的提示文字
btn.move(50, 50)
self.setWindowTitle('PyQt5 - Button')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
步骤三:添加图像
在创建按钮时,可以使用QIcon类为按钮添加图像。以下是创建一个带图像的按钮的代码示例:
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
from PyQt5.QtGui import QIcon
import sys
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 创建一个按钮,并为其添加图像
btn = QPushButton(self)
btn.setToolTip('这是一个带图像的按钮')
btn.setIcon(QIcon('icon.png')) # 图像路径
btn.setIconSize(btn.sizeHint()) # 按钮大小
btn.move(50, 50)
self.setWindowTitle('PyQt5 - Button with Icon')
self.setGeometry(300, 300, 300, 200)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
说明:icon.png是放在与python文件同一目录下的一张图片,程序会自动寻找这个图片。
示例1:带图像的普通按钮
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
from PyQt5.QtGui import QIcon
import sys
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 创建一个按钮,并为其添加图像
btn = QPushButton(self)
btn.setToolTip('这是一个带图像的普通按钮')
btn.setIcon(QIcon('icon.png')) # 图像路径
btn.setIconSize(btn.sizeHint()) # 按钮大小
btn.move(50, 50)
self.setWindowTitle('PyQt5 - Icon Button')
self.setGeometry(300, 300, 300, 200)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
说明:效果与步骤三相同,但是将按钮名称从“Button”改为了“Icon Button”,方便区分。
示例2:用QToolButton替换QPushButton
from PyQt5.QtWidgets import QApplication, QWidget, QToolButton
from PyQt5.QtGui import QIcon
import sys
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 创建一个工具按钮,并为其添加图像
btn = QToolButton(self)
btn.setToolTip('这是一个带图像的工具按钮')
btn.setIcon(QIcon('icon.png')) # 图像路径
btn.setIconSize(btn.sizeHint()) # 按钮大小
btn.move(50, 50)
self.setWindowTitle('PyQt5 - Tool Button')
self.setGeometry(300, 300, 300, 200)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
说明:与步骤三的代码基本相同,只是将QPushButton替换为QToolButton,效果类似。QToolButton与QPushButton的区别是QToolButton会在按下时保持按下状态,并在鼠标悬停时显示提示。这些特性使得QToolButton更适合作为工具栏按钮。