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"));
- 水平:
- 垂直:
- 浮动:
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请将您的问题包含在问题中,而不是屏幕截图。如果你让人们更容易帮助你,他们就更有可能麻烦你。