PyQt5 – 在按钮上添加图像图标

  • Post category:Python

PyQt5是Python下一个强大的GUI库,支持多种操作系统,使用方便且功能强大。在PyQt5中,我们可以在按钮上添加图像图标,为用户提供更友好的界面交互。下面是完整使用攻略,包含两个示例说明:

1. 添加图像图标的基本方法

在PyQt5中,我们可以使用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):

        # 创建按钮
        qbtn = QPushButton('按钮', self)

        # 加载图标
        icon = QIcon('icon.png')

        # 将图标应用于按钮
        qbtn.setIcon(icon)

        # 更改图标大小
        qbtn.setIconSize(QtCore.QSize(48, 48))

        # 设置按钮位置和大小
        qbtn.setGeometry(50, 50, 50, 50)

        # 显示窗口
        self.show()

if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

在这个示例中,我们首先创建了一个QPushButton按钮,并加载图标icon.png。接着,我们将图标应用到按钮上,并指定了图标的大小。最后,我们设置了按钮的位置和大小,并显示出来。

2. 在多个按钮中使用相同的图标

有时候,我们会需要在多个按钮中使用相同的图标,这时我们可以使用QPixmap和QImage类来加载图标,并在不同控件中重新使用,如下所示:

from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout, QPushButton
from PyQt5.QtGui import QIcon, QImage, QPixmap
import sys

class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):

        # 创建水平布局
        hbox = QHBoxLayout(self)

        # 加载图标
        img = QImage('icon.png')
        img = img.scaled(QSize(48, 48))
        pixmap = QPixmap.fromImage(img)

        # 创建按钮
        qbtn1 = QPushButton('', self)
        qbtn1.setIcon(QIcon(pixmap))
        qbtn1.setIconSize(QSize(48, 48))

        qbtn2 = QPushButton('', self)
        qbtn2.setIcon(QIcon(pixmap))
        qbtn2.setIconSize(QSize(48, 48))

        # 添加控件到布局中
        hbox.addWidget(qbtn1)
        hbox.addWidget(qbtn2)

        # 显示窗口
        self.show()

if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

在这个示例中,我们首先加载了一个图标,并将其缩放到了我们需要的大小,然后创建了两个按钮,并将图标应用于这两个按钮上。注意,在这个示例中,我们使用了QImage和QPixmap类来加载和显示图标,以达到在不同的控件中重用图标的效果。

通过这两个示例,不难看出,在PyQt5中,添加图像图标非常简单,只需要使用QIcon、QPixmap和QImage类,就可以轻松实现。