QDockWidget中的QToolBox折叠到最小尺寸

时间:2018-11-27 09:36:35

标签: c++ qt qdockwidget

我在QDockWidget中有一个QToolBox

MyWidget::MyWidget ()
: QMainWindow ()
{
    auto tool_dock = new QDockWidget ();

    auto tool_box = new QToolBox ();

    tool_box->addItem (create_draw       (), tr ("Draw"));
    tool_box->addItem (create_noisy_line (), tr ("Noisy Line"));
    tool_box->addItem (create_flood_fill (), tr ("Flood Fill"));

    tool_dock->setWidget (tool_box);

    // tool_dock->show ()
    addDockWidget (Qt::LeftDockWidgetArea, tool_dock)

    setCentralWidget (create_central_widget ());
}

Dock小部件折叠到最小的可能宽度。

如果我将tool_dock显示为顶级窗口小部件

    tool_dock->show ()
    // addDockWidget (Qt::LeftDockWidgetArea, tool_dock)

然后看起来像这样,它的宽度正确:

enter image description here

但是如果我将其添加到停靠小部件中

    // tool_dock->show ()
    addDockWidget (Qt::LeftDockWidgetArea, tool_dock)

然后看起来像这样:

enter image description here

“绘图”和“填充”工具框项都是空的QWidget。这是故意的。如果单击“嘈杂的行”工具框项,则停靠的tool_dock会调整为内容的宽度。

enter image description here

tool_dock显示为顶级窗口小部件时,tool_box的宽度将适合其内容,即使显示的是空的工具箱项目。我希望tool_dock停靠时也会发生这种情况。

我尝试将工具箱和停靠栏的水平尺寸策略都设置为MinimumExpanding,但这没用。

如何使这个QToolBox始终适合其内容的宽度,即使它的某些项目为空,以及它是否位于QDockWidget中?

0 个答案:

没有答案