qt 在已经有一个.ui文件的基础上,在新建一个.ui文件,如何在Widget类中使用这个新建的.ui文件
时间: 2024-02-17 18:04:04 浏览: 195
解决.ui文件生成的.py文件运行不出现界面的方法
5星 · 资源好评率100%
如果你已经有了一个.ui文件,并且想在Widget类中使用另一个新建的.ui文件,可以按照以下步骤操作:
1. 打开Qt Creator,打开你已有的Qt项目,然后选择“文件”菜单下的“新建文件或项目”,在“资源文件”中新建一个新的.ui文件。
2. 在新建的.ui文件中添加需要使用的窗口控件,然后保存并关闭该文件。
3. 在Widget类的头文件中添加一个私有成员变量,用于存储从新建的.ui文件中载入的窗口控件。
4. 在Widget类的构造函数中,使用QUiLoader类从新建的.ui文件中载入窗口控件,并将它们存储到Widget类的私有成员变量中。
5. 在Widget类的析构函数中,释放从新建的.ui文件中载入的窗口控件。
下面是一个示例代码,演示了如何在Widget类中使用另一个新建的.ui文件:
```cpp
#include "widget.h"
#include "ui_widget.h"
#include <QtUiTools/QUiLoader>
#include <QFile>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
// 载入新的.ui文件
QUiLoader loader;
QFile file(":/new/ui/MyOtherWidget.ui");
file.open(QFile::ReadOnly);
QWidget *widget = loader.load(&file, this);
file.close();
// 将窗口控件存储到私有成员变量中
m_label = widget->findChild<QLabel*>("otherLabel");
m_button = widget->findChild<QPushButton*>("otherButton");
// 将窗口控件添加到Widget类中
QVBoxLayout *layout = new QVBoxLayout(this);
layout->addWidget(widget);
}
Widget::~Widget()
{
// 释放从新的.ui文件中载入的窗口控件
delete m_label;
delete m_button;
delete ui;
}
```
在这个示例代码中,我们在Widget类中添加了一个私有成员变量m_label和m_button,用于存储从新的.ui文件中载入的窗口控件。在Widget类的构造函数中,我们使用QUiLoader类从新的.ui文件中载入窗口控件,并将它们存储到m_label和m_button中。最后,我们将窗口控件添加到Widget类中,并在Widget类的析构函数中释放它们。
阅读全文