Qt Designer布局宝典

原文地址:https://doc.qt.io/qt-6/designer-layouts.html

使用窗体前,需要将部件对象拖放到布局中,以确保预览或在应用程序中使用时可以正确显示。将对象放置在布局中也可以确保在窗体放大缩小时对象的大小也能随之改变。

一旦部件对象被置于布局中,其位置和大小就不能再被单独设置。因为布局本身控制着每个部件的几何空间结构,同时还考虑到看不到的空间间隔器(spacer)。spacer 被置于layout后会影响部件的几何空间结构。

布局可以在窗体中层级嵌套。例如,一个典型的带有水平按钮行的对话框布局,对话元素可以使用垂直布局,而底部按钮需要被包含在水平布局中。有关Qt 布局的详细介绍,请参考 Layout Management 官方文档。

若要分拆布局,请按 Ctrl + 0或者选中布局使用右键菜单布局-分拆布局,如下图。

工具栏中的拆分布局图标也能完成同样的功能。

设置顶级布局

窗体的顶级布局需要取消选定内容(鼠标单击窗体空白处)后才能应用布局。顶级布局非常必要,其决定窗体被放大缩小后其中的部件布局也随之变化。检测是否设置了顶级布局的方法也很简单,预览窗体并缩放窗体大小。

应用布局

同样的,顶级布局在容器部件 (QGroupBox) 或基于容器的部件 (QTabWidget, QToolBox and QStackedWidget)上。容器部件需要选中后布局设置才能生效。

在对象检查器中,顶级布局不作为单独的对象可见。其属性显示在在主窗体、容器部件或者容器部件页面的属性列表中。

布局对象

对象布局即在现有多个对象作为一组并创建布局。其实现方式无非就是选择对象后使用工具、菜单或窗体右键菜单进行操作。

如上图所示,布局对象在窗体上以红色线框进行标注,且其作为对象在对象检查器中显示。在属性编辑器中也可以查看其属性。

可以选择布局对象并将其置于其他布局对象中以建立布局层级。

当某个子布局被选中,可以通过Shift+左键选中其父级布局。这样在复杂布局中选择特定布局也变得更加简单。

在布局中插入对象

拖动部件对象到布局即可完成对象的插入。对象拖放到某处会出现一个蓝色的光标,其意味着对象可以放置到此处。

布局类型

水平和垂直(Horizontal and Vertical )布局

窗体上排列对象的最简单方法就是将其水平或垂直布局排放。水平布局将部件水平对齐; 垂直布局则将其垂直对齐。

垂直和水平布局可以无限级组合嵌套。如果需要更多的排列方式,网格布局是个不错的方案。

网格(Grid )布局

复杂的表单布局可以通过网格布局实现。这种布局给了表单设计者更自由的方式。虽然有失灵活性,但是特定情况下,网格布局比水平和垂直布局更加适用。

表单(Form )布局

QFormLayout 类以两列表单形式管理部件;左侧一列放置lable标签而右侧一列放置文本部件(例如line edit,spin box等等) QFormLayout 类遵循各平台外观设计规范并支持整行排列。

上面的 UI 文件在不同平台下的效果预览。

拆分器(Splitter )布局

使用拆分器布局也是一种常见的布局方式。拆分器也可以如常规布局一样对部件对象进行水平或垂直布局,但其允许用户根据需求拖动调整每个对象的空间大小(预览或运行时可用)。

尽管QSplitter 是一个容器部件,Qt designer 仍将其视为应用于现有部件的布局。选中将要放入拆分器的部件,使用工具栏按钮、快捷键或者布局右键菜单对其进行拆分器布局

快捷键

除了标准的工具栏和右键菜单外,还有一组用于部件布局的快捷键。

布局 快捷键 描述
Horizontal Ctrl+1 将选定的对象放置在水平布局中
Vertical Ctrl+2 将选定的对象放置在垂直布局中
Grid Ctrl+5 将选定的对象放置在网格布局中
Form Ctrl+6 将选定的对象放置在表单布局中
Horizontal splitter Ctrl+3 创建一个水平拆分器,并将选定的对象放在其中
Vertical splitter Ctrl+4 创建一个垂直拆分器,并将选定的对象放在其中
Adjust size Ctrl+J 调整布局的大小,以确保每个子对象有足够的空间显示其内容QWidget::adjustSize() 了解详情

注意:
Ctrl + 0用于分拆布局。

【翻译】Qt Designer 布局宝典相关推荐

  1. Qt扫盲-Qt Designer 设计师使用总结

    Designer 设计师使用总结 一.顶部菜单栏 1. 常用的菜单内容 2. 快捷工具栏说明 二.左侧控件栏 1. 组件分类 2. 筛选 三.中间绘图区 1. 左侧控件区拖放控件到中间 2. 中间区域 ...

  2. Qt Designer下的一些基础操作

    第一个Qt Designer程序设计(Visual Stdio下) <一>.在vs下新建一个Qt Console Application工程,打开designer,就开始布局你的窗口吧. ...

  3. PyQt5 图形界面-用Qt Designer来设计UI界面,并转化为python代码运行实例演示

    Qt Designer 是 Qt Creater 程序里的一个功能. PyQt5 是把 Qt Designer 设计的界面转化为 python 代码的库. 请看这篇文章: Qt Creater.PyQ ...

  4. PyQt5 笔记2 -- Qt Designer使用

    PyQt5 笔记2 – Qt Designer使用 1.打开Qt Designer Tools > External Tools > Qt Designer 2.新建窗口 选择 Main ...

  5. 在Qt Designer中创建主Windows

    在Qt Designer中创建主Windows 在Qt Designer中创建主Windows 菜单Menus 创建菜单 创建菜单项 工具栏 创建和删除工具栏 添加和删​​除工具栏按钮 动作Actio ...

  6. 在Qt Designer中使用容器

    在Qt Designer中使用容器 在Qt Designer中使用容器 在Qt Designer中使用容器 容器小部件可对表单上的对象组提供高级控制.它们可用于执行各种功能,例如管理输入小部件,提供分 ...

  7. Qt Designer的信号和插槽编辑模式

    Qt Designer的信号和插槽编辑模式 Qt Designer的信号和插槽编辑模式 连接对象 编辑和删除连接 Qt Designer的信号和插槽编辑模式 在Qt Designer的信号和插槽编辑模 ...

  8. Qt Designer的小部件编辑模式

    Qt Designer的小部件编辑模式 Qt Designer的小部件编辑模式 编辑表格 物业编辑器 动态特性 对象检查器 Qt Designer的小部件编辑模式 在窗口小部件编辑模式下,可以将对象从 ...

  9. qtdesigner设计表格_实例9 利用Qt Designer设计一个对话框

    在Qt编程中,程序员通常都是使用手动编写Python源代码来进行Qt程序开发,但有些程序员也喜欢使用可视化的方法进行对话框设计,因此,Qt为习惯利用可视化方式进行窗口程序设计的程序员提供了Design ...

  10. PyQT5 之 Qt Designer 介绍与入门

    From:https://www.jianshu.com/p/5b063c5745d0 养薛定谔的猫 简书:https://www.jianshu.com/u/bf82b363ae88 Qt Desi ...

最新文章

  1. 【机器学习入门】(10) 特征工程:特征抽取,字典特征抽取、文本特征抽取,附完整python代码
  2. syslog-ng+loganalyzer log system install guide
  3. (2)java基础继承
  4. js点击获取连接的内容
  5. strcpy会覆盖原来的吗_幽默你真的会了吗?原来可以这么简单
  6. u-boot 源码分析讲解
  7. 攻城时服务器维护,8月31日服务器维护更新公告
  8. linux 下oracle基于raw扩充表空间步骤
  9. 微软MED-V虚拟化实战教程之二映像准备和测试
  10. 条码打印工具-Bartender的使用
  11. 图像处理-Sobel边缘检测(C++实现,不依赖opencv)
  12. 网络安全相关证书有哪些?
  13. win10系统登录服务器密码存储位置,win10远程服务器登录密码
  14. php 命格算法,八字格局中的弃命格mdash;mdash;从势格
  15. PowerDesigner书签(03)显示comment字段注释内容
  16. (01)开发环境准备
  17. python驾到~障碍通通闪开,美女批量入内存~
  18. 内网建站 NAT穿透 局域网穿透
  19. MySQL--自然连接的用法
  20. 私有专辑 java,这是什么“专辑歌手”标签iTunes使用?任何方式使用java设置?

热门文章

  1. html页面点击生成图片并可以下载图片
  2. 《跟阿铭学linux》(第3版)笔记
  3. 深度学习技术在医疗领域的研究方向及应用
  4. zabbix监控服务器raid状态,基于Zabbix的MegaRAID阵列卡状态监控
  5. 【010 Editor】010 Editor安装教程
  6. 一招解决origin8 licience过期
  7. 用人机对话系统设计逻辑探究人工智能产品经理
  8. 我看过的机器学习方面的好文章
  9. 【从0到1搭建LoRa物联网】12、LoRa网关与平台通讯协议
  10. lora网关软件设计_Semtech发布用于LoRa网关的开源软件 实现安全通信管理