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

PyQt5中如何将QPushButton的图标置于文本之后或下方

PyQt5中如何将QPushButton的图标置于文本之后或下方

嘿,这问题我熟!想把QPushButton的图标从默认的文本前面挪到后面或者下方,PyQt5里有好几种简单的实现方式,咱们直接上干货~

一、把图标放到文本右侧(实现「Track ⨁」效果)

这应该是你最想要的效果,推荐用样式表来实现,直观又好控制:
只需要给按钮加一行样式设置,指定图标的位置为右侧就行:

btn_add_track.setStyleSheet("QPushButton { icon-position: right; }")

如果你不想用样式表,也可以通过调整按钮的布局方向+文本对齐来实现:

# 把按钮的布局方向设为从右到左,让图标跑到右边
btn_add_track.setLayoutDirection(Qt.RightToLeft)
# 再把文本对齐到左侧垂直居中,保证文本还是靠左显示
btn_add_track.setAlignment(Qt.AlignLeft | Qt.AlignVCenter)

二、把图标放到文本下方

如果之后你有需要把图标放在文本正下方的需求,同样用样式表就能搞定,只需要把icon-position改成bottom:

btn_add_track.setStyleSheet("QPushButton { icon-position: bottom; }")

按钮会自动调整高度来容纳文本和图标,不用额外设置尺寸。

完整示例代码(图标在右侧版本)

from PyQt5.QtWidgets import QApplication, QPushButton, QWidget, QVBoxLayout
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import Qt
import sys

app = QApplication(sys.argv)

window = QWidget()
layout = QVBoxLayout(window)

btn_add_track = QPushButton("Track")
btn_add_track.setIcon(QIcon("Icons/plus.png"))
# 关键代码:设置图标在文本右侧
btn_add_track.setStyleSheet("QPushButton { icon-position: right; }")
layout.addWidget(btn_add_track)
window.show()

sys.exit(app.exec_())

要是你觉得图标和文本的间距不够美观,还可以在样式表里加padding参数调整,比如:

btn_add_track.setStyleSheet("QPushButton { icon-position: right; padding-left: 8px; padding-right: 8px; }")

这样就能让两边的间距更舒服啦~

备注:内容来源于stack exchange,提问作者LeviAckerman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 19:13:04