前言

前面我们已经创建了mainwindow ControlTabWidget ControlTreeWidget maintitlebar 4个UI几面,我们需要将其他三个UI放置到mainwindow显示,同时需要它们可以自适应的界面的大小缩放。这里会使用到水平布局和垂直布局方法。

(一)主界面布局设计

  1. 放置一个空的widget

  2. 将mainwindow主界面设置为垂直布局

  3. 添加一个horizontalLayout 放置到mainwindow

    这时,horizontalLayout 和第一步放置的widget将主界面上下分为两半

  4. 在 horizontalLayou 中在放置widget2 和 widget3,这时,widget2和widget3水平平分horizontalLayou 框

  5. 将widget,widget2,widget3分别命名为widgetTitle,widgetTree和widgetTab

  6. 要想widgetTitle与horizontalLayou不是垂直平分整个框,直接拖动是不行的,这里需要可以设置其中一方的最大尺寸,这里将widgetTitle的最大高度限定为50,得到如下效果图

  7. 与上面相同,将widgetTree的最大宽度限定为250,得到如下效果图

  8. 上面创建的是QT默认的Qwidget空间,要怎么与我们自定义的界面相关联呢?

    这里我们右键,选择提升为

  9. 设置类名ControlTabWidget和头文件路径,点击添加,如下图

  10. 如果添加成功,右键提升为可以看到我们自定义的界面ControlTabWidget ,ControlTreeWidget,MainTitleBar

  11. 最后,可以看到空间的类,已经变成了我们上一章自定义的类了

到这里,就已经将ControlTabWidget ControlTreeWidget maintitlebar 这三个界面布局到 mainwindow 一个界面上来了。

(二)maintitlebar 界面设计

  1. 这里设计两个label控件,一个用来显示LOGO,一个用来显示Title名字

    1. 放置三个按键在最右边,分别用作最大,最小和关闭的功能
    2. 中间放置的是一个horizontalSpacer,用来限定位置使用

  2. 将Label和按键的字符去掉,添加上LOGO图片

    1. 注意LOGO图片的放置,需要限定图片的最大值,不然图片放置不下
    2. 设置图片可以缩放

(三)ControlTreeWidget 界面设计

  1. 设置ControlTreeWidget 为垂直对齐,然后再放入一个treeWidget控件,如下图

  2. 右键编辑项目,添加不同的项

  3. 属性中插入图片,以及改变字体大小信息



  4. 同样的方式将其他几项全部设置好

(四)ControlTabWidget 界面设计

  1. 将ControlTabWidget主界面设置为水平布局,然后放置一个QTabWidget 控件

  2. 修改控件的名字以及每页的显示标题

总结

本章实现了 ControlTabWidget ControlTreeWidget maintitlebar 这三个界面布局到 mainwindow 一个界面上的功能。

这里只是界面的布局,因为各个控件的具体功能还未实现,暂时无法联动,并且样式也还未有设置,显示的还是系统默认的样式。

下面一章将介绍如何将 ControlTabWidgetControlTreeWidget 联动的功能

本章工程名字为:page_sample_02

完整工程下载地址,请到 liwen01 微信公众号中回复: QT 获取

---------------------------End---------------------------
长按识别二维码
关注 liwen01 公众号

Qt5.9 UI设计(四)——布局设计及自定义界面的更多相关文章

  1. 十. 图形界面(GUI)设计5.布局设计

    在界面设计中,一个容器要放置许多组件,为了美观,为组件安排在容器中的位置,这就是布局设计.java.awt中定义了多种布局类,每种布局类对应一种布局的策略.常用的有以下布局类: FlowLayout, ...

  2. 四种常见的APP分类界面布局设计案例学习

    相信各位对于APP设计,已经很熟练啦.如何在熟练的基础上提高我们界面的优美度,或者是进行APP界面的迭代设计. 重构APP设计布局是我们必须要经历的一个过程. 在之前,学习UI设计的时候,经常要接触到 ...

  3. 游戏UI框架设计(四) : 模态窗体管理

    游戏UI框架设计(四) --模态窗体管理 我们在开发UI窗体时,对于"弹出窗体"往往因为需要玩家优先处理弹出小窗体,则要求玩家不能(无法)点击"父窗体",这种窗 ...

  4. 移动UI布局设计原则(一)

    学习笔记1 Learning notes one 移动UI布局设计的布局原则 Layout Principles of Mobile UI Layout Design 移动UI视觉交互设计法则 Des ...

  5. GPS部标平台的架构设计(四)-百度地图设计

    部标GPS软件平台之百度地图设计 地图是客户端中不可缺少的一个模块,很多人在设计和画图时候,喜欢加上地图引擎这样高大上的字眼,显得自己的平台有内涵,说白了就是用第三方的SDK来开发,早期的GPS监 控 ...

  6. 【Material Design视觉设计语言】应用布局设计

    [Material Design视觉设计语言]章节列表 [Material Design视觉设计语言]开篇 [Material Design视觉设计语言]Material Design设计概述 [Ma ...

  7. 第九十三节,html5+css3移动手机端流体布局,基础CSS,头部设计,轮播设计,底部设计

    html5+css3移动手机端流体布局,基础CSS,头部设计,轮播设计,底部设计 基础CSS 首先将通用css属性写好 @charset "utf-8"; /*通用样式*/ /*去 ...

  8. 响应式web布局设计实战总结教程

    响应性web设计的理念是:页面的设计与开发应当根据用户行为与设备环境(包括系统平台,屏幕尺寸,屏幕定向等)进行相应的响应及调整.具体的实践方式由多方面组成,包括弹性网格和布局,图片,css Media ...

  9. Java知多少(84)图形界面之布局设计

    在界面设计中,一个容器要放置许多组件,为了美观,为组件安排在容器中的位置,这就是布局设计.java.awt中定义了多种布局类,每种布局类对应一种布局的策略.常用的有以下布局类: FlowLayout, ...

  10. 设计师们做UI设计和交互设计、界面设计等一般会去什么网站呢?

    明明可靠颜值吃饭,却偏偏要靠才华立身,UI设计师就是这样一群神奇的物种.面对“大的同时小一点”.“五彩斑斓黑”.“下班之前给我”……这些甲方大大刁钻的需求,设计师每天都在咬牙微笑讨生活.你可以批评我的 ...

随机推荐

  1. 使用cgroup控制CPU使用率

    关键文件 cpu子系统中的关键文件. cpu.cfs_period_us cpu.cfs_quota_us tasks cgroup.procs 常用命令 查看当前系统内的CPU. lscpu 查看当 ...

  2. 搭建vulfocus靶场

    搭建vulfocus靶场 第一种方法 docker pull一下执行如下命令即可 docker pull vulfocus/vulfocus:latest docker run -d -p 8081: ...

  3. 谈谈muduo库的销毁连接对象——C++程序内存管理和线程安全的极致体现

    前言 网络编程的连接断开一向比连接建立复杂的多,这一点在陈硕写的muduo库中体现的淋漓尽致,同时也充分体现了C++程序在对象生命周期管理上的复杂性,稍有不慎,满盘皆输. 为了纪念自己啃下muduo库 ...

  4. maven系列:POM文件总体配置说明

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  5. YoloV5实战:手把手教物体检测

    摘要:​YOLOv5并不是一个单独的模型,而是一个模型家族,包括了YOLOv5s.YOLOv5m.YOLO... 本文分享自华为云社区<YoloV5实战:手把手教物体检测--YoloV5> ...

  6. 火山引擎DataTester:跨境电商网站,如何快速实施AB测试 ?

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群   如今中企出海的形态愈加多样,很多企业都建有独立站可直接触达海外客户,但获取优质流量的成本会更加高昂.当优质流量 ...

  7. Unable to create tempDir. java.io.tmpdir is set to /tmp

    磁盘挂载后,启动报错 Unable to create tempDir. java.io.tmpdir is set to /tmp [2022-03-30 17:12:06.596] WARN [m ...

  8. 断点续传(上传)Java版

    PostMan 客户端调用部分见,断点续传(上传)C#版 1. 客户每次上传前先获取一下当前文件已经被服务器接受了多少 2. 上传时设定偏移量,跳过服务器已收到的长度 @SpringBootTest ...

  9. umount.nfs4: /home/videorec/sharedir: device is busy

    用umount取消挂载时报错设备繁忙:device is busy.原因是还有进程在打开目录下的文件,可以先杀死进程,再卸载,或者强制卸载 umount 使用umount强制卸载,参数如下: -l  ...

  10. MMSC 扩充物料库存地点

    当涉及到物料的库存地点时,系统通常会做校验,该物料是否扩充了库存地点,没有扩充则报错.为了不使这样的错误干扰到程序逻辑,通常会在涉及时,先查询MARD表,判断是否存在对应的库存地点.如果没有存在,则直 ...