我在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)
然后看起来像这样,它的宽度正确:
但是如果我将其添加到停靠小部件中
// tool_dock->show ()
addDockWidget (Qt::LeftDockWidgetArea, tool_dock)
然后看起来像这样:
“绘图”和“填充”工具框项都是空的QWidget。这是故意的。如果单击“嘈杂的行”工具框项,则停靠的tool_dock
会调整为内容的宽度。
当tool_dock
显示为顶级窗口小部件时,tool_box
的宽度将适合其内容,即使显示的是空的工具箱项目。我希望tool_dock
停靠时也会发生这种情况。
我尝试将工具箱和停靠栏的水平尺寸策略都设置为MinimumExpanding,但这没用。
如何使这个QToolBox始终适合其内容的宽度,即使它的某些项目为空,以及它是否位于QDockWidget中?