前言

前面我们已经创建了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. vue 2实战系列 —— 复习Vue

    复习Vue 近期需要接手 vue 2的项目,许久未写,语法有些陌生.本篇将较全面复习 vue 2. Tip: 项目是基于 ant-design-vue-pro ant-design-vue-pro 由 ...

  2. 一个WPF版的Layui前端UI库

    前言 相信做.NET后端开发的很多小伙伴都用过Layui前端UI组件库,今天我们分享一个WPF版的Layui前端UI样式库:Layui-WPF. WPF介绍 WPF 是一个强大的桌面应用程序框架,用于 ...

  3. Kiractf

    信息收集 主机发现和端口扫描只开放了80的web服务 ​​ ‍ WEB打点 访问首页有文件上传,肯定可以利用一波.language那个页面甚至文件包含都写脸上了. root@Lockly tmp/ki ...

  4. DVWA Brute Force(暴力破解)全等级

    Brute Force(暴力破解) 目录: Brute Force(暴力破解) 1.Low 2.Medium 3.High 方法1--Burp爆破 方法2--Python脚本爆破 4.Impossib ...

  5. Asp .Net Core 系列:Ocelot结合Consul实现服务注册、服务发现

    Consul下载地址:https://www.consul.io/downloads.html 文档:https://learn.hashicorp.com/consul/getting-starte ...

  6. 基于k6和python进行自动化性能测试

    摘要:在性能测试中,达到相应的性能指标对于一个软件来说十分重要,在本文中,将介绍一种现代化性能测试工具k6. 本文分享自华为云社区<基于k6和python进行自动化性能测试>,作者: 风做 ...

  7. 教你用ab命令进行并发与压力测试

    摘要:今天给大家分享一篇如何使用ab进行并发与压力测试的文章 本文分享自华为云社区<[高并发]如何使用ab进行并发与压力测试?>,作者:冰 河. 今天给大家分享一篇如何使用ab进行并发与压 ...

  8. html5鼠标拖动排序及resize实现方案分析及实践

    对列表进行拖动排序,尺寸改变.之前一般会使用jQuery-UI.其通过mousedown.mousemove.mouseup这三个事件来实现页面元素被鼠标拖拽的效果.vue-drag-resize v ...

  9. Solon Web 开发:四、认识请求上下文(Context)

    Handler + Context 架构,是Solon Web 的基础.在 Context (org.noear.solon.core.handle.Context)里可以获取: 请求相关的对象与接口 ...

  10. PPT 难吗

    多看 http://www.zcool.com.cn/ http://www.huaban.com