📜  PyQt5 |如何调整按钮内的图像?(1)

📅  最后修改于: 2023-12-03 14:45:50.497000             🧑  作者: Mango

PyQt5 | 如何调整按钮内的图像?

在使用 PyQt5 创建按钮时,可以在按钮内嵌入图像,通过 PyQt5 的 API,可以轻松地调整按钮中图像的大小、位置、缩放等属性。本文将介绍如何在 PyQt5 中调整按钮内的图像。

1. 创建一个基本的推按钮

首先,我们需要创建一个基本的推按钮。可以通过以下代码来实现:

from PyQt5.QtWidgets import QApplication, QPushButton, QWidget
import sys

class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setGeometry(100, 100, 400, 300)
        self.setWindowTitle("PyQt5")

        button = QPushButton(self)
        button.setText("按钮")
        button.move(150, 150)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = Window()
    window.show()
    sys.exit(app.exec_())

上述代码创建一个简单的窗口,并在窗口中添加了一个展示文本为“按钮”的推按钮。运行代码可以看到如下界面:

基本推按钮

2. 在按钮内嵌入图像

PyQt5 支持在按钮内嵌入各种类型的图像,包括 png、jpg、jpeg、bmp 等格式的图像。可以通过设置按钮的 icon 或者 pixmap 属性来实现。

  • icon

在按钮中嵌入图标时,可以使用 QIcon 类。QIcon 可以直接接受图像的路径或者从 Qt 内置图标库中获取图像。

button.setIcon(QIcon("image/button.png"))
  • pixmap

另一种在按钮内嵌入图像的方式是使用 QPixmap 类。

pixmap = QPixmap("image/button.png")
button.setIcon(QIcon(pixmap))

图像可以在创建控件时直接添加,也可以在以后添加。代码如下:

button = QPushButton(self)
button.move(150, 150)

# 添加图像
button.setIcon(QIcon("image/button.png"))
# 或者
pixmap = QPixmap("image/button.png")
button.setIcon(QIcon(pixmap))

添加图像后,按钮中将会显示相应的图标。

3. 调整图像的大小

默认情况下,按钮中的图像大小与图片本身大小相同。因此如果图片过大,就需要进行缩放。

可以通过 pixmap.scaled() 方法来缩放图片,该方法返回一个缩放后的 QPixmap 类型对象。示例如下:

pixmap = QPixmap("image/button.png")
button.setIcon(QIcon(pixmap.scaled(100, 100)))

上述代码将图像缩放到了 100x100 的大小。

4. 调整图像的位置

默认情况下,图像的位置在按钮的左侧。通过调整 QSizePolicy、setIconSize 和 setIconAlignment 方法可以实现改变图像位置的效果。

  • QSizePolicy

可以通过在布局大小策略中设置按钮控件的大小和拉伸模式来调整图像的位置。

button.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
  • setIconSize

可通过 setIconSize 方法来调整图像大小。

button.setIconSize(QSize(50, 50))
  • setIconAlignment

通过 setIconAlignment 方法来设置图像的位置。

button.setIconAlignment(Qt.AlignRight)

上述代码将图像位置调整到了按钮的右侧。

总结

通过以上方法可以实现在 PyQt5 中调整按钮内的图像,涉及到的重要 API 包括 QIcon、QPixmap、QSizePolicy、setIconSize 和 setIconAlignment 等。