QT向界面中嵌套新的界面
简单说下 想要实现的内容
我们有一个主窗口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向界面中嵌套新的界面的更多相关文章
- Winform界面中主从表编辑界面的快速处理
在Winform开发中,我们往往除了常规的单表信息录入外,有时候设计到多个主从表的数据显示.编辑等界面,单表的信息一般就是控件和对象实体一一对应,然后调用API保存即可,主从表就需要另外特殊处理,本随 ...
- Qt 5.0+ 中 connect 新语法与重载函数不兼容问题的解决方法,以及个人看法
Qt 5.0+ 版本提供了 connect 的新语法,相比之前的语法新语法可以提供编译期检查,使用也更方便.可是使用过程中发现一个小问题——当某个 signal 和成员函数是重载关系的时候,qmake ...
- 在Winform框架界面中改变并存储界面皮肤样式
在本篇介绍的Winform界面样式改变及存储操作中,是指基于DevExpress进行界面样式的变化.一般情况下,默认我们会为客户提供多种DevExpress的界面皮肤以供个人喜好选择,默认DevExp ...
- Winform界面中实现通用工具栏按钮的事件处理
在一个给客户做的项目中,界面要求修改增加通用工具栏按钮的事件处理,也就是在主界面中放置几个固定的功能操作按钮,打开不同的页面的时候,实现对应页面的功能处理,这种和我标准的界面处理方式有所不同,标准的列 ...
- 第15.11节 PyQt(Python+Qt)入门学习:Qt Designer(设计师)组件Property Editor(属性编辑)界面中主窗口QMainWindow类相关属性详解
概述 主窗口对象是在新建窗口对象时,选择main window类型的模板时创建的窗口对象,如图: 在属性编辑界面中,主窗口对象与QMainWindow相关的属性包括:iconSize.toolButt ...
- [OpenCV Qt教程] 在Qt图形界面中显示OpenCV图像的OpenGL Widget (第一部分)
本文译自:http://www.robot-home.it/blog/en/software/tutorial-opencv-qt-opengl-widget-per-visualizzare-imm ...
- Qt界面中嵌入其他exe程序的界面,使用Qt5
下面用一个小例子来演示如何在Qt的界面中嵌入其他exe程序的界面,最终效果如下图所示.本文参考了 http://blog.csdn.net/jiaoyaziyang/article/details/4 ...
- PyQt(Python+Qt)入门:Designer组件属性编辑界面中QWidget类相关属性详解
本文适用人员:本文比较长,适合不理解Qt Designer部件属性的人员阅读或资料查找. 声明: 1.如果有人认为本文是简单的复制粘贴+翻译而成,敬请读本文最后的后记: 2.本文为老猿Python学习 ...
- Qt: 界面中使用中文(三种方法,QApplication::translate可指定编码)
界面中的字符串, 尽量的使用QObject::tr(text); 以便以后转换界面语言, 即使现在你还不考虑这个问题. 方法一: 每次设置时都使用: button->setText(QAppl ...
随机推荐
- WPF 3D 球面导览
基于WPF的3D Sphere实现模式,升级实现了该3D导览Demo.先pose一张demo效果图 所有顶点的坐标来源于足球的顶点.足球整个球面完全由正五边形和正六边形拼成,每条拼缝的长度一致,故知道 ...
- 3.java基础之关键字instanceof
1. instanceof 使用:对象引用名 instanceof 类名 作用:来判读引用的对象和类名是否兼容(是否继承该类,或爷爷辈的类) 例子: Team team = new Team(); t ...
- 基于Redis消息的订阅发布应用场景
目录 基于Redis消息的订阅发布应用场景 1.应用背景 2.困境 2.1 锁表风险 2.2 实时性差 2.3 增加编程复杂性 2.4 实时效果 3.解决方案 3.1 前端传值给服务端 3.2 服务端 ...
- laravel大量填充项目测试数据的正确方法
项目开发时,一般都会有到项目测试数据的准备操作,以前都是基于PHP代码自主编写sql语句,然后循环的插入到数据库中里面,当当我们接触过laravel数据库后,就可以很方便的完成项目的测试数据准备. 但 ...
- SQL Server之替换文本内容中的回车符和换行符
UPDATE 表 SET 栏位A = REPLACE(栏位A, CHAR(10), '') UPDATE表 SET 栏位A = REPLACE(栏位A, CHAR(13), '')
- Java中的BufferedImage类、Image类、Graphics类
https://www.cnblogs.com/jpfss/p/11731812.html
- zabbix通过agent监控linux主机
前言: 前几篇博客分别介绍了通过snmp来进行监控linux主机与windows主机,本篇介绍通过agent客户端来进行系统监控. 环境: server:192.168.249.142 client: ...
- JS获取url请求参数
JS获取url请求参数,代码如下: // 获取url请求参数 function getQueryParams() { var query = location.search.substring(1) ...
- IT兄弟连 HTML5教程 多媒体应用 新增多媒体播放元素
在HTML5之前,要在网站上展示视频.音频.动画等多媒体信息,除了使用第三方自主开发的播放器,使用最多的工具应该算是Flash了,但是它们都需要在浏览器中安装各种插件才能使用,有时速度很慢.HTML5 ...
- go语言之range
Go 语言范围(Range) Go 语言中 range 关键字用于 for 循环中迭代数组(array).切片(slice).通道(channel)或集合(map)的元素.在数组和切片中它返回元素的索 ...