在 PySide6 中为按钮添加图标,可以使用PySide6.QtGui.QIcon类来加载图标文件,在QPushButton初始化时指定图标或使用setIcon()方法为按钮设置图标。

1. 在构造时指定图标

这种方法适合图标固定不变的场景;

from PySide6.QtGui import QIcon

button = QPushButton(QIcon("open.png"),"打开(&O)")

2. 使用 setIcon() 设置图标

该方法适合图标需要根据状态切换的场景;

from PySide6.QtGui import QIcon

button = QPushButton("打开(&O)")
button.setIcon(QIcon("open.png"))

调整图标大小

可以使用.setIconSize()方法调整图标的大小:

from PySide6.QtCore import QSize

# 调整为 24x24
button.setIconSize(QSize(24, 24))

示例代码

下面是一个简单的示例代码,演示了如何为按钮添加图标,并调整了图标的大小:

import sys
import os
from PySide6.QtWidgets import (QApplication, QWidget, 
    QPushButton,QVBoxLayout)
from PySide6.QtGui import QIcon
from PySide6.QtCore import QSize

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

    def initUI(self):
        self.resize(300, 200)
        self.setWindowTitle("为按钮添加图标")

        # 获取脚本所在目录
        script_dir = os.path.dirname(os.path.abspath(__file__))
        # 图标文件的路径
        icon_path = os.path.join(script_dir, "vtune.ico")
        icon = QIcon(icon_path)

        self.button = QPushButton("Intel VTune Profiler")
        self.button.setIcon(icon)
        self.button.setIconSize(QSize(32,32))

        layout = QVBoxLayout()
        layout.addWidget(self.button)
        self.setLayout(layout)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MainWidget()
    window.show()
    sys.exit(app.exec())

程序运行效果

Pyside6为按钮添加图标
为按钮添加图标