QToolBox в QDockWidget сворачивается до минимального размера - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть QToolBox в QDockWidget

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 ());
}

Виджет док-станции сворачивается до его наименьшей возможной ширины.

Если я показываю 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

Элементы ящика "Draw" и "Flood Fill" пустыQWidgets.Это намеренно.Если я щелкну на панели инструментов «Шумная линия», закрепленный tool_dock изменится по ширине содержимого.

enter image description here

Когда tool_dock отображается как виджет верхнего уровня, ширина tool_box соответствует его содержимому, даже когда отображается пустой элемент панели инструментов.Я хочу, чтобы такое поведение также происходило, когда tool_dock пристыкован.

Я попытался установить политики горизонтального размера как для панели инструментов, так и для док-станции на MinimumExpanding, но это не сработало.

Как я могу сделать так, чтобы этот QToolBox всегда соответствовал ширине его содержимого, даже когда некоторые его элементы пусты, а также когда он находится в QDockWidget?

...