You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyQt6中如何将QPushButton的图标置于文字上方?

QPushButton实现图标在文字上方的方法

QPushButton没有像QToolButton那样直接调用setToolButtonStyle的简便方法,但通过以下两种方式可以轻松实现图标在文字上方的效果:

方法一:使用样式表(QSS)推荐

这是最灵活且兼容性好的方式,通过定制按钮的图标子控件位置来实现:

QPushButton {
    text-align: center; /* 让文字居中显示 */
    qproperty-iconSize: 48px; /* 根据需求调整图标大小 */
}
QPushButton::icon {
    subcontrol-origin: padding;
    subcontrol-position: top center; /* 将图标定位在按钮顶部居中位置 */
}

在代码中正常设置按钮的图标和文字,再应用上述样式表即可:

from PyQt5.QtWidgets import QPushButton
from PyQt5.QtGui import QIcon

# 创建按钮
btn = QPushButton("示例按钮")
btn.setIcon(QIcon("your_icon_path.png"))

# 应用样式表
btn.setStyleSheet("""
    QPushButton {
        text-align: center;
        qproperty-iconSize: 48px;
    }
    QPushButton::icon {
        subcontrol-origin: padding;
        subcontrol-position: top center;
    }
""")

方法二:设置垂直布局方向(简易但兼容性一般)

可以直接将按钮的布局方向改为垂直,让图标和文字上下排列:

from PyQt5.QtCore import Qt

btn.setDirection(Qt.Vertical)

不过这种方式在部分Qt样式下可能出现显示异常,比如按钮尺寸适配问题,因此更推荐使用QSS方案。


内容的提问来源于stack exchange,提问作者DigitalTemplar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 04:05:59