-1

我的QToolbar.

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

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

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

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

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

4

2 回答 2

1

QToolBar照顾它自​​己的布局,你不应该担心它。您应该添加操作或小部件,它会根据方向自动水平或垂直布置项目。

QToolBar 文档

工具栏按钮是通过添加操作来添加的,使用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"));
  • 水平的:

    在此处输入图像描述

  • 垂直的:

    在此处输入图像描述

  • 漂浮:

    在此处输入图像描述

于 2016-09-06T20:51:29.403 回答
0

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

QToolBar是一个高级小部件,它使用QActions. 您需要在应用程序中创建操作,并使用addAction()或添加这些操作insertAction()

样式化QToolBar应该通过子类化当前QStyle(困难)或使用样式表(简单)来完成

于 2016-09-06T20:02:58.187 回答