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

时间:2016-09-06 19:59:06

标签: qt pyqt qtoolbar

我的QToolbar问题。

我有一个QToolBar并在其中使用了QVBoxLayout来处理我的QPushButtons。

我的问题是当我在QVBoxLayout周围浮动我的ToolBar时会失去它的布局。我把它放回到码头后,布局恢复正常。

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

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

我找到的唯一方法是忘记QToolBar并重新实现我自己的个性化QWidget并模拟我自己的ToolBar,以便它运行良好。

2 个答案:

答案 0 :(得分:1)

QToolBar负责自己的布局,你不应该担心它。您应该添加操作或小部件,它会自动水平或垂直布置关于方向的项目。

QToolBar Doc

  

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

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

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

    enter image description here

  • 垂直:

    enter image description here

  • 浮子:

    enter image description here

答案 1 :(得分:0)

您不应更改QToolBar的布局。它管理自己的布局,通过这样做你有点破坏它。

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

QToolBar的样式应该通过继承当前的QStyle(困难)或使用样式表(简单)来完成