【PyQt5】QToolBar中添加QSpacerItem的解决

问题

现在需要在工具栏(QToolBar)中加入一些组件如输入框(QLineEdit)、按钮(QPushButton)等,并将这些组件置于最左侧,即设想在toolbar右侧加一个spacer将所有组件压到左侧,但是遇到问题:QToolBar没有addItem方法或用AddWidget方法时QSpacerItem不属于QWidget

解决

由于QToolBar只能使用addWidget方法,因此可以自定义一个QWidget来实现QSpacerItem的效果,即将QWidget的SizePolicy设置为Expanding

from PyQt5.QtWidgets import QToolBar, QLineEdit, QWidget, QSizePolicy


# 定义一个工具栏
toolbar = QToolBar()

# 添加一个输入框
line_edit = QLineEdit()
toolbar.addWidget(line_edit)
# 一般组件较多时放到一个QWidget中会更美观
# from PyQt5.QrWidgets import QHBoxLayout
# layout = QHBoxLayout()
# line_edit = QLineEdit()
# layout.addWidget(line_edit)
# button = QPushButton()
# layout.addWidget(button)
# widget = QWidget()
# widget.setLayout(layout)
# toolbar.addWidget(widget)

# 自定义一个QWidget作为QSpacerItem
widget_spacer = QWidget()
widget_spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Minimum)
toolbar.addWidget(widget_spacer)


补充

QToolBar常用方法:

方法描述
addAction()添加文字或图标的工具按钮
addSeperator()添加分组分隔线
addWidget()添加一般控件
setMovale()设置工具栏可移动
setOrientation()设置工具栏方向(横向Qt.Horizontal或纵向Qt.vertical)
clear()清空工具栏
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值