需求

qt QFrame 有什么作用?

解决

占位

可以由 UI 工程师先使用 QFrame 占位,固定好整体布局,后续的实际的 widget 添加到 QFrame 中即可。

添加 widget

QFrame 占位之后,还是需要使用 layout 来管理需要添加进去的 widget, 如果不用 layout, 可能会发生 widget 都在 (0, 0) 处,并且 resize 窗口之后,可能不会自动调整内部 widget.

chartView = new ChartBriefView(createScatterChart());
auto layout = new QVBoxLayout();
layout->addWidget(chartView);
ui->frame->setLayout(layout);

参考

QtDesigner+QWidget占位设计

QT的布局关键之一QFrame

Adding a widget to a QFrame

第二十九章、containers容器类部件QFrame框架部件详解