打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Qt中如何将一个界面加入到另一个界面

本文要讲的知识点就一个,如何在Qt中将一个界面加入另一个界面,有没有在开发中遇到过呢?速来围观吧!

我们知道QtCreator中是有集成界面(UI)设计器的,可以在设计器中拖拽控件到界面文件上(*.ui文件)。将一个界面加入另一个界面就用到了一个控件QScrollArea,接下来就讲解如何使用该控件完成如题所示的功能。

假设:有一个mainwindow.ui的界面类,有一个test.ui的界面类,我们将test.ui界面加入mainwindow.ui界面。

首先:在mainwindow.ui界面中,加入QScrollArea,从QtCreator中拖入进去即可(或者自己手写代码添加),

这里我们假设QScrollArea控件的名称是myArea。(记住该假设)

然后:在mainwindow.h头文件中包含Test类的头文件,并定义Test类对象的指针,如下:

























#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include
#include "test.h" //包含Test类的头文件
namespace Ui{ class MainWindow;} class MainWindow:public QMainWindow{ Q_OBJECT public: explicit MainWindow(QWidget*parent=0); ~MainWindow(); void setUi(); private: Ui::MainWindow *ui; Test *widget; //定义Test类对象的指针};
#endif //MAINWINDOW_H

最后:调用QScrollArea的 void setWidget(QWidget *widget)方法即可。

在mainwindow.cpp中的构造函数中添加如下代码:

widget = new Test();

ui->myArea->setWidget(widget);

至此,本文要讲述的知识点就结束了。

再补充一点:如果再new一个Test类的对象,再添加到myArea中,那么之前添加的widget就会被释放,

并且会成为野指针。即:

widget2 = new Test();

ui->myArea->setWidget(widget2);

在执行完上述两行代码后,widget指向的对象被释放,widget成为了野指针。

好了,本文就介绍到这里了,希望阅读的你有收获。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
python qt5 为写好的程序加界面
QT的自动滚动区QScrollArea的用法,图文详解
PyQt5 从零开始制作一个 PDF 阅读器
PyQt5+Pycharm安装和配置
PyQT5速成教程-2 Qt Designer介绍与入门
Qt5.9开发指南笔记
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服