当前位置: 首页 > news >正文

Qt Designer,仿作一个ui界面的练习(一):界面的基本布局

初学不要太复杂,先做一个结构简单的,大致规划一下功能分区,绘制草图:

 最终的效果:

        

        界面主要由顶边栏、侧边栏、内容区构成。顶边栏左边是logo,右边是时钟显示。侧边栏最上边是切换按钮,用以动画切换功能按钮的缩略显示和全部显示。

一、创建QMainWindow,命名为demo.ui:

二、移除菜单栏和状态栏

三、 将自带的QWidget命名为baseWidget:

        这是所有的部件的基底界面。

四、 在baseWidget上放置一个QFrame,命名为appFrame,这个QFrame就是软件的显示主界面。

五、再放置四个QFrame,分别命名为leftFrame(左边栏)、topFrame(顶边栏)、mainContent(显示内容主区)、contentBox(内容区)。内容区由左边栏和显示内容主区组成,是软件的主要操作和显示区。

六、逐一设计布局和部件结构,从顶边栏开始:

        1、在topFrame(顶边栏)放置三个QFrame,从左至右分别命名为:topLogo、topContent、topTimeShow。

        2、顶边栏的属性设置,将最大和最小高度全部设置为50:

 3、topLogo的属性:最大和最小宽高均设尺寸为30*30

        4、topContent的属性:最大和最小高度全部设置为50:

         5、topTimeShow的属性:最大和最小宽高尺寸全部设置为200*50:

        6、右键点击topFrame(顶边栏),布局--水平布局。并在属性中将边距全部设为0 。

        7、右键点击topLogo,布局对齐--左侧。

        8、同样的方法, 设置topTimeShow布局对齐--右侧。

七、leftFrame(左边栏)的布局:

        1、leftFrame(左边栏)放置三个QFrame,从上到下分别命名为:left_toggleBox、left_buttonsBox、left_bottomBox。

        2、leftFrame(左边栏)的属性设置,将最小宽度设置为50。

        3、left_buttonsBox的属性设置,将最小宽度设置为50。

        4、left_toggleBox、left_bottomBox的属性设置,最小宽度设置为50,最小和最大高度均设为50。

        5、右键点击leftFrame(左边栏),布局--垂直布局。并在属性中将边距全部设为0 。

        6、右键点击left_buttonsBox,布局对齐--顶部。注意,顶部的不是left_toggleBox,虽然它在最上边。将位于中间的left_buttonsBox设为顶部,它就不会自动居中,而是随着尺寸的增长从上向下延伸。

        7、右键点击left_bottomBox,布局对齐--底部。

八、contentBox(内容区)的布局

        1、将leftFrame(左边栏)和mainContent(显示内容主区)拖入contentBox(内容区)。

        2、右键点击contentBox(内容区),布局--水平布局。并在属性中将边距全部设为0 。

        3、 右键点击leftFrame,布局对齐--左侧。

        4、在mainContent(显示内容主区)属性设置里将其水平策略设置为expanding。

九、appFrame(显示主界面)的布局

        1、将topFrame和contentBox拖入appFrame(显示主界面):

         2、右键点击appFrame(显示主界面),布局--垂直布局。并在属性中stretch设为0,其余保持默认 。

        3、 右键点击topFrame,布局对齐--顶部。

        4、在contentBox(内容区)属性设置里将其垂直策略设置为expanding。

十、整体的布局:

        右键点击MainWindow,布局--垂直布局。

        

         至此,完成了布局的基本框架设计,软件的显示主界面(appFrame)已经自动布满了QMainWindow,而且,当拖动改变QMainWindow的尺寸时,appFrame,也就是软件的显示主界面也随之改变。这就是使用布局的好处,它会自动调整相对的尺寸,使软件界面能够适应不同的屏幕分辨率。

http://www.lryc.cn/news/412671.html

相关文章:

  • 《深入了解 Postman 接口测试工具》
  • java使用org.apache.commons:commons-compress解压 .7z压缩包
  • 通过知识库系统实现卓越医疗保健
  • 基于C语言从0开始手撸MQTT协议代码连接标准的MQTT服务器,完成数据上传和命令下发响应(华为云IOT服务器)
  • 程序员面试中的“八股文”:敲门砖还是绊脚石?
  • 液位传感器- 从零开始认识各种传感器【二十四期】
  • 【c++】爬虫到底违不违法?
  • Python基础知识笔记——特殊符号
  • Thinkphp仿华为商城源码/红色风格电脑手机数码商城系统网站源码
  • 超有用的数据恢复方法!你一定不要错过!
  • CDH清理磁盘空间完全攻略和完整实现自动化脚本(大数据清除日志)
  • vulhub:Apache解析漏洞apache_parsing
  • Raspberry Pi Docker 运行 IRIS
  • 【SQL Server】默认端口与自定义端口
  • 【笔记】Android 驻网(网络注册)状态变化的代码实现
  • SAP执行董事会变动
  • css-grid布局之美
  • Python面试整理-异常处理
  • linux服务之DHCP(centos7.6)
  • 2024最新的软件测试面试八股文
  • C++ STL transform_reduce 用法
  • MySQL5.7 排序
  • 【Unity】3D功能开发入门系列(一)
  • 【Python体验】第五天:目录搜索、数据爬虫(评论区里写作业)
  • elasticsearch性能调优方法原理与实战
  • python print 函数参数:sep 自定义分隔符,end 自定义结尾符
  • git 使用场景
  • Ubuntu22.04 Docker更换阿里云镜像
  • Windows下Rust OpenCV环境配置
  • PostgreSQL(二十三)TOAST技术