将一个 UI 文件添加到另一个 UI 文件中

Adding one ui file into another

本文关键字:UI 文件 添加 另一个 一个      更新时间:2023-10-16

假设我有设计器文件,其中各自的类说form.uiform.hform.cppmyclass.uimyclass.hmyclass,cpp。现在我想要的是 2 件不同的事情. 现在我在myclass.ui文件中有一个小部件和一个布局,我现在使用addLayout功能将form.ui文件添加到其中.现在我想要它,以便整个form.ui文件内容应该通过自我调整进入小布局空间。但这并没有发生.那么我该如何实现这一目标

QUILoader 是你的解决方案,但可能不是最好的,特别是如果你在 form.h & form.cpp 中有 form.ui 的自定义操作和函数。最简单的方法是在小部件中推广小部件,然后使其不可见。当您必须显示它时,您可以更改隐藏状态。

在另一种情况下,您可以动态创建它并自行管理内存。

QUiLoader示例:

// your main widget
MyClass *myclass = new MyClass();
// to generate a widget with a .ui file
QUiLoader loader;
QFile file("form.ui");
file.open(QFile::ReadOnly);
QWidget *myForm = loader.load(&file, this);
file.close();
// insert the widget in your main container
myclass->layout()->addWidget(myForm);