简单说下 想要实现的内容

我们有一个主窗口mainwindow,需要向其中放入新的界面,你可以自己定义里面内容。

大致的效果图如下

实现起来就是利用QT的layout布局 使用水平布局QHboxlayout或QVboxLayout

第一步,先进入ui编辑界面,加入一个水平或者垂直的布局(根据自己选则,我用水平)充满整个mainwindow

注意右边我更改了 QHBoxLayout的名称 为pHBoxLayout

然后运行一遍 ;(注意需要运行一遍 要不然类找不到pHBoxLayout 这个布局)

接着定义一个方法(向mainwindow增加窗口的方法) (mainwindow.cpp)

 void MainWindow::putwidget(QWidget* widget)
{
ui->pHBoxLayout->addWidget(widget);
}

新建一个class文件 定义为myWidget名称 inherent QObject和QWidget

在类名myWidget后面增加 :public QWidget

在myWidget中增加该窗口的背景色 区分其他区域

 myWidget::myWidget()
{
this->setAttribute(Qt::WA_StyledBackground,true);
this->setStyleSheet("background-color: rgb(255,255, 255)");
}

在main函数中添加(main.cpp)

myWidget *widget=new myWidget();
w.putwidget(widget);

编译运行一下

得到如下结果

后面的工作比较重复 就是慢慢增加左右布局,再将布局添加控件

注意两点:

新建一个layout布局时需要指定父类在括号中 leftWidget为需要定义布局的控件

 QVBoxLayout *PHVBoxLayout=new QVBoxLayout(leftWidget);

定义这个控件时,需要定义指针形式

mywidget文件的代码为

#include "myWidget.h"
#include <QHBoxLayout>
#include <QVBoxLayout> myWidget::myWidget()
{
this->setAttribute(Qt::WA_StyledBackground,true);
this->setStyleSheet("background-color: rgb(255,255, 255)");
QWidget *leftWidget=new QWidget();
leftWidget->setStyleSheet("background-color: rgb(255,100, 255)");
QWidget *rightWidget=new QWidget();
rightWidget->setStyleSheet("background-color: rgb(255,255, 100)");
QHBoxLayout *PHBoxLayout=new QHBoxLayout(this);
PHBoxLayout->addWidget(leftWidget);
PHBoxLayout->addWidget(rightWidget); QWidget *lefttopWidget=new QWidget();
lefttopWidget->setStyleSheet("background-color: rgb(100,255, 100)");
QWidget *leftdownWidget=new QWidget();
leftdownWidget->setStyleSheet("background-color: rgb(255,100, 100)");
QVBoxLayout *PHVBoxLayout=new QVBoxLayout(leftWidget);
PHVBoxLayout->addWidget(lefttopWidget);
PHVBoxLayout->addWidget(leftdownWidget); QWidget *rightleftWidget=new QWidget();
rightleftWidget->setStyleSheet("background-color: rgb(100,100, 100)");
QWidget *rightrightWidget=new QWidget();
rightrightWidget->setStyleSheet("background-color: rgb(155,100, 30)");
QHBoxLayout *PHHBoxLayout=new QHBoxLayout(rightWidget);
PHHBoxLayout->addWidget(rightleftWidget);
PHHBoxLayout->addWidget(rightrightWidget);
}

最后代码如下 就几kb

链接:https://pan.baidu.com/s/1XenhRn2-qnuHzz_vo2BfHg
提取码:88y3
复制这段内容后打开百度网盘手机App,操作更方便哦

QT向界面中嵌套新的界面的更多相关文章

  1. Winform界面中主从表编辑界面的快速处理

    在Winform开发中,我们往往除了常规的单表信息录入外,有时候设计到多个主从表的数据显示.编辑等界面,单表的信息一般就是控件和对象实体一一对应,然后调用API保存即可,主从表就需要另外特殊处理,本随 ...

  2. Qt 5.0+ 中 connect 新语法与重载函数不兼容问题的解决方法,以及个人看法

    Qt 5.0+ 版本提供了 connect 的新语法,相比之前的语法新语法可以提供编译期检查,使用也更方便.可是使用过程中发现一个小问题——当某个 signal 和成员函数是重载关系的时候,qmake ...

  3. 在Winform框架界面中改变并存储界面皮肤样式

    在本篇介绍的Winform界面样式改变及存储操作中,是指基于DevExpress进行界面样式的变化.一般情况下,默认我们会为客户提供多种DevExpress的界面皮肤以供个人喜好选择,默认DevExp ...

  4. Winform界面中实现通用工具栏按钮的事件处理

    在一个给客户做的项目中,界面要求修改增加通用工具栏按钮的事件处理,也就是在主界面中放置几个固定的功能操作按钮,打开不同的页面的时候,实现对应页面的功能处理,这种和我标准的界面处理方式有所不同,标准的列 ...

  5. 第15.11节 PyQt(Python+Qt)入门学习:Qt Designer(设计师)组件Property Editor(属性编辑)界面中主窗口QMainWindow类相关属性详解

    概述 主窗口对象是在新建窗口对象时,选择main window类型的模板时创建的窗口对象,如图: 在属性编辑界面中,主窗口对象与QMainWindow相关的属性包括:iconSize.toolButt ...

  6. [OpenCV Qt教程] 在Qt图形界面中显示OpenCV图像的OpenGL Widget (第一部分)

    本文译自:http://www.robot-home.it/blog/en/software/tutorial-opencv-qt-opengl-widget-per-visualizzare-imm ...

  7. Qt界面中嵌入其他exe程序的界面,使用Qt5

    下面用一个小例子来演示如何在Qt的界面中嵌入其他exe程序的界面,最终效果如下图所示.本文参考了 http://blog.csdn.net/jiaoyaziyang/article/details/4 ...

  8. PyQt(Python+Qt)入门:Designer组件属性编辑界面中QWidget类相关属性详解

    本文适用人员:本文比较长,适合不理解Qt Designer部件属性的人员阅读或资料查找. 声明: 1.如果有人认为本文是简单的复制粘贴+翻译而成,敬请读本文最后的后记: 2.本文为老猿Python学习 ...

  9. Qt: 界面中使用中文(三种方法,QApplication::translate可指定编码)

    界面中的字符串, 尽量的使用QObject::tr(text); 以便以后转换界面语言, 即使现在你还不考虑这个问题. 方法一:  每次设置时都使用: button->setText(QAppl ...

随机推荐

  1. 爬虫(四):requests模块

    1. requests模块 1.1 requests简介 requests 是一个功能强大.简单易用的 HTTP 请求库,比起之前用到的urllib模块,requests模块的api更加便捷.(本质就 ...

  2. GitLab-使用SSH的方式拉取和推送项目

    场景 Docker Compose部署GitLab服务,搭建自己的代码托管平台(图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/det ...

  3. 产品经理如何使用 CODING 进行项目规划

    CODING 为您的企业提供从概念到软件开发再到产品发布的全流程全周期软件研发管理,为您的研发团队提供全程助力,帮助研发团队捋清需求.不断迭代.快速反馈并能实时追踪项目进度直到完成.同时 CODING ...

  4. 学习之Redis(二)

    Redis的对象和数据结构 一.字符串对象(请参考学习之Redis(一):https://www.cnblogs.com/wbq1994/p/12029516.html) 二.列表对象 列表对象的编码 ...

  5. InnoDB On-Disk Structures(一)-- Tables (转载)

    转载.节选于https://dev.mysql.com/doc/refman/8.0/en/innodb-tables.html 1.InnoDB Architecture The following ...

  6. C++ 进阶笔记之一

    优化相关 使用灵活的.动态分配的数据,不要使用固定大小多数组: 优先使用线性算法或者尽可能快的算法: push_back 散列表查询:O(1) set/map lower_bound/upper_bo ...

  7. ubuntu 安装谷歌浏览器

    如何在ubuntu 中安装谷歌浏览器, 对于一个刚刚接触ubuntu的人来说,希望安装软件更加的简单,明了.最好能够像在windows下面安装软件一样. 先来介绍一下如何快速的安装谷歌浏览器,以下的方 ...

  8. HashMap如何在Java中工作?

    通过优锐课学习笔记分享,我们可以看到HashMap问题在工作面试中很常见. 这也是HashMaps在Java内部如何工作的一些深入说明,分享给大家参考学习. HashMap在内部如何工作已成为几乎所有 ...

  9. Javascript模块化开发3——Grunt之预处理

    一.grunt预处理简述 grunt的注册任务函数本身会对传入的参数和配置对象里的相关属性进行一定的预处理,方便任务函数进行操作. grunt的registerTask方法和registerMulti ...

  10. HTML5 3D 在智慧物业/地产管理系统中的应用

    概述 该博文主要展示采用 HT for Web 提供的可视化技术,对智慧房产.智慧物业相关方向的可视化呈现做的一点尝试. 传统的 智慧房产/楼宇自动化/智慧物业 常会采用 BIM(建筑信息模型 Bui ...