PYQT5-QToolBar浮动时如何保持布局

PYQT5-QToolBar浮动时如何保持布局,qt,pyqt,qtoolbar,Qt,Pyqt,Qtoolbar,我的QToolbar有问题 我得到一个QToolBar,并在其中使用QVBoxLayout来处理我的QpushButton 我的问题是当我在QVBoxLayout周围浮动我的工具栏时,用来使其失去布局。在我把它放回船坞后,布局恢复正常 我想知道是否有办法在任何情况下修复相同的布局。 我尝试为每个状态实现两种不同的布局,固定和浮动,但也没有成功 我找到的唯一方法是忘记QToolBar,重新实现我自己的个性化QWidget,并模拟我自己的工具栏,使其工作正常。您不应该更改QToolBar的布局。它管

我的
QToolbar
有问题

我得到一个QToolBar,并在其中使用QVBoxLayout来处理我的QpushButton

我的问题是当我在QVBoxLayout周围浮动我的工具栏时,用来使其失去布局。在我把它放回船坞后,布局恢复正常

我想知道是否有办法在任何情况下修复相同的布局。

我尝试为每个状态实现两种不同的布局,固定和浮动,但也没有成功


我找到的唯一方法是忘记QToolBar,重新实现我自己的个性化QWidget,并模拟我自己的工具栏,使其工作正常。您不应该更改
QToolBar
的布局。它管理自己的布局,通过这样做,您在某种程度上破坏了它

QToolBar
是一个高级小部件,它通过
QActions
处理其内容。您需要在应用程序中创建操作,并使用
addAction()
insertAction()
添加这些操作


设置
QToolBar
的样式应该通过对当前
QStyle
子类化(困难)或使用样式表(容易)

QToolBar
来完成,因为它会处理自己的布局,您不必担心。您应该添加操作或小部件,它会根据方向自动水平或垂直布置项目

:

通过使用
addAction()
insertAction()
添加操作,可以添加工具栏按钮。可以使用
addSeparator()
insertSeparator()
来分隔按钮组。如果工具栏按钮不合适,可以使用
addWidget()
insertWidget()
插入小部件。合适的小部件示例有
QSpinBox
QDoubleSpinBox
QComboBox

例如,以下代码段生成以下布局:

ui->mainToolBar->addWidget(new QPushButton("A"));
ui->mainToolBar->addWidget(new QPushButton("B"));
ui->mainToolBar->addWidget(new QPushButton("C"));
  • 水平:

  • 垂直:

  • 浮动:


所以你建议我不要在工具栏的布局中使用按钮,是吗?我宁愿在工具栏中使用“addActions”,然后再使用它?我只是从Qt开始。因此,在我的工具栏内的QVBoxLayout中使用操作而不是QpushButton仍然可以让我进行更改,如“删除边距”、“删除间距”、“设置图标”以及所有这些设计更改?您是否使用
QToolBar::addWidget
方法添加了
QVBoxLayout
?(你不应该在工具栏上添加这样的小部件)你能提供一个例子让人们尝试一下吗?这基本上就是我一直在做的:self.setFixedSize(102865)self.mywidget=QWidget()self.vbox=QVBoxLayout()self.vbox.setspace(0)self.vbox.setContentsMargins(10,0,0,0)self.mywidget.setLayout(self.vbox)self.addWidget(self.mywidget)@Y.Melo请将您的问题包含在问题中,而不是屏幕截图。如果你让人们更容易帮助你,他们就更有可能麻烦你。