在 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())
程序运行效果