我正在使用 Qt 开发一个 c++ 应用程序。我想在我的代码中使用 Qt Designer ui 文件,因为它(在 XML 中)不编译代码并对其进行硬编码。我正在使用此 URL 中的示例代码。
该示例将 XML 应用于 QWidget,然后显示 QWidget。如何使用 QMainWindow 来实现这一点,记住我在 Qt Designer 中选择了主窗口表单,它已经添加了一个中央小部件?
至少有两种方法可以做到这一点。
使用 Qt Designer 将垂直布局添加到中央小部件。对于没有子级的小部件,您不能这样做,因此只需添加一个按钮,应用布局并删除该按钮。给你的布局起一个好名字,例如“main_layout”。
从示例中复制构造函数实现并更改以下行:
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(formWidget);
setLayout(layout);
对此:
ui->main_layout->addWidget(formWidget);
您不需要使用主窗口的表单进行操作。只需从示例中复制构造函数实现并将有关布局的相同行更改为:
setCentralWidget(formWidget);
自动生成的中央小部件将完全替换为动态加载的表单。