У меня есть 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)
тогда это выглядит так, что имеет правильную ширину:
но если я добавлю его в виджет-док вместо
// tool_dock->show ()
addDockWidget (Qt::LeftDockWidgetArea, tool_dock)
тогда это выглядит так:
Элементы ящика "Draw" и "Flood Fill" пустыQWidgets.Это намеренно.Если я щелкну на панели инструментов «Шумная линия», закрепленный tool_dock
изменится по ширине содержимого.
Когда tool_dock
отображается как виджет верхнего уровня, ширина tool_box
соответствует его содержимому, даже когда отображается пустой элемент панели инструментов.Я хочу, чтобы такое поведение также происходило, когда tool_dock
пристыкован.
Я попытался установить политики горизонтального размера как для панели инструментов, так и для док-станции на MinimumExpanding, но это не сработало.
Как я могу сделать так, чтобы этот QToolBox всегда соответствовал ширине его содержимого, даже когда некоторые его элементы пусты, а также когда он находится в QDockWidget?