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
相关产品推荐
相关产品推荐

