Qt在一个ui中嵌入另一个ui

Qt中界面设计有三种方式:
1、直接把控件拖动到界面中,所见即所得。
2、动态生成控件,注意在new的时候,要把this指针放到构造函数中,保证new的控件属于某个窗体。
3、如果一个ui中有多个控件,想把这个ui直接放到另一个ui的布局中,可以new一个这个ui对应类的对象,把对象放到合适的位置。
窗体类一般继承自QWidget,很多 控件都可以通过addWidget内嵌QWidget。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Qt,可以在一个源文件内新建多个UI界面,并使用它们。下面是一个简单的示例: 1. 首先,在Qt Creator创建一个新的Qt Widgets应用程序项目。 2. 在项目目录下创建两个新的.ui文件。以本例为例,我们创建了MyWidget1.ui和MyWidget2.ui两个文件。 3. 在Qt Creator打开MyWidget1.ui文件,添加需要使用的控件,然后保存并关闭该文件。 4. 在Qt Creator打开MyWidget2.ui文件,添加需要使用的控件,然后保存并关闭该文件。 5. 打开widget.h头文件,添加以下代码: ```cpp #ifndef WIDGET_H #define WIDGET_H #include <QWidget> #include <QtUiTools/QUiLoader> namespace Ui { class Widget; } class Widget : public QWidget { Q_OBJECT public: explicit Widget(QWidget *parent = nullptr); ~Widget(); private: Ui::Widget *ui; QWidget *m_widget1; QWidget *m_widget2; }; #endif // WIDGET_H ``` 在这个头文件,我们添加了两个私有成员变量m_widget1和m_widget2,用于存储从MyWidget1.ui和MyWidget2.ui文件载入的窗口控件。 6. 打开widget.cpp源文件,添加以下代码: ```cpp #include "widget.h" #include "ui_widget.h" #include <QFile> #include <QVBoxLayout> Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); // 载入MyWidget1.ui文件 QUiLoader loader; QFile file(":/new/ui/MyWidget1.ui"); file.open(QFile::ReadOnly); m_widget1 = loader.load(&file, this); file.close(); // 将窗口控件添加到Widget QVBoxLayout *layout1 = new QVBoxLayout(ui->widget1); layout1->addWidget(m_widget1); // 载入MyWidget2.ui文件 QFile file2(":/new/ui/MyWidget2.ui"); file2.open(QFile::ReadOnly); m_widget2 = loader.load(&file2, this); file2.close(); // 将窗口控件添加到Widget QVBoxLayout *layout2 = new QVBoxLayout(ui->widget2); layout2->addWidget(m_widget2); } Widget::~Widget() { // 释放从MyWidget1.ui文件载入的窗口控件 delete m_widget1; // 释放从MyWidget2.ui文件载入的窗口控件 delete m_widget2; delete ui; } ``` 在这个源文件,我们在Widget类的构造函数使用QUiLoader类从MyWidget1.ui和MyWidget2.ui文件载入窗口控件,并将它们存储到m_widget1和m_widget2。然后,我们将这些窗口控件添加到Widget。最后,在Widget类的析构函数释放这些窗口控件。 7. 打开widget.ui文件,在其添加两个QWidget控件,分别命名为widget1和widget2。 8. 编译并运行程序,你会看到两个UI界面被嵌入Widget控件。 在这个示例,我们使用了QUiLoader类从两个不同的.ui文件载入窗口控件。我们存储这些窗口控件,并在Widget控件使用它们。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码猿杂谈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值