使用Qt Designer进行布局
在使用Form之前,需要将Form上的对象放置到布局中。这确保在应用程序中预览或使用Form时,对象将正确显示。在布局中放置对象还可以确保在调整窗体大小时它们也能正确调整大小。
应用和打断布局
管理对象的最简单方法是对一组现有对象应用布局。通过选择需要管理的对象并使用主工具栏、菜单或上下文菜单应用到标准布局来实现的。
一旦将窗体/控件(widgets)插入到布局中,就不可能单独移动和调整它们的大小,因为布局本身控制着其中每个控件的几何形状,并考虑到spacers提供的提示。在这中情况下,您必须打破布局并手动调整每个对象的几何形状,或者通过调整布局大小来影响控件的几何形状。
要打破布局,请按选中布局并按住Ctrl+0(注意是0)或从窗体的上下文菜单、窗体菜单或主工具栏中选择break layout。还可以从布局中添加和删除间隔符(spacers),以影响小部件的几何形状。
在对象中插入布局
将对象插入到现有布局可以通过拖拽实现,在拖拽的时候,布局中会显示一个蓝色光标,以指示对象将被添加到何处。
如图在Button3拖拽到Button2下面时,会显示蓝色光标,这是放开左键,Button3就会放置到Button2下面
设置顶层布局
可以通过清除选择(单击窗体上的鼠标左键)并应用布局来设置窗体的顶层布局。顶层布局是确保控件在窗口调整大小时能够正确调整大小。要检查是否设置了顶层布局,预览widget并尝试通过拖动来调整窗口的大小。
在上图中如果我们没有设置顶层布局,那么在预览的时候三个按键的大小不会随者窗口的改变而改变。我们观察右侧,会发现有个红色圆圈标识。
空白处右键Lay out->随便选择一种布局,红色圆圈标识消失,并且预览后你会发现button的大小会随者窗体大小而变化
布局选择——可以通过Qt Designer左边的控件盒子(Widget Box->Layouts)
或者右键
垂直和水平布局
在窗体上排列对象的最简单方法是将它们放置在水平或垂直布局中。水平布局确保内部小部件水平对齐;垂直布局确保它们垂直对齐。水平和垂直布局可以组合和嵌套到任何深度。但是,如果您需要对对象的位置有更多的控制,最好使用网格布局(grid layout)。
网格布局(Grid Layout)
复杂的表格布局可以通过在网格布局中放置对象来创建。这种布局让表单设计人员可以更自由地在表单上安排小部件,但会导致更不灵活的布局。然而,对于某些形式布局,网格布局比水平和垂直布局的嵌套布局更适合。
拆分器布局(Splitter Layouts)
管理窗体上对象布局的另一种常见方法是将它们放在拆分器中。这些分配器以与正常布局相同的方式水平或垂直地排列对象,但也允许用户调整分配给每个对象的空间数量。
尽管QSplitter是一个容器控件,但Qt Designer将splitter对象视为应用于现有控件的布局。要将一组控件放到splitter中,请按此处描述的方式选择它们(控件放置好后,空白处点击右键拖动到控件另一边的空白处选择控件,然后右键),然后使用适当的工具栏按钮、键盘快捷方式或布局上下文菜单项应用splitter布局。
表单布局(Form Layout)
从Qt4.4开始,又加入了一个layout类——QFormLayout。这个类以两列的形式管理小部件;左列包含标签,右列包含控件,如line edits, spin boxes等。QFormLayout类遵循各种平台外观指导原则,支持对长行进行包装。
快捷键
除了标准的工具栏和上下文菜单项之外,还有一组键盘快捷方式,用于在控件上应用布局。
Layout Shortcut Description
Horizontal Ctrl+1 Places the selected objects in a horizontal layout.
Vertical Ctrl+2 Places the selected objects in a vertical layout.
Grid Ctrl+5 Places the selected objects in a grid layout.
Form Ctrl+6 Places the selected objects in a form layout.
Horizontal splitter Ctrl+3 Creates a horizontal splitter and places the selected objects inside it.
Vertical splitter Ctrl+4 Creates a vertical splitter and places the selected objects inside it.
Adjust size Ctrl+J Adjusts the size of the layout to ensure that each child object has sufficient space to display its contents. See QWidget::adjustSize() for more information.
————————————————
版权声明:本文为CSDN博主「JAMO_WOO」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jxwzh/article/details/81673223
使用Qt Designer进行布局的更多相关文章
- Qt Designer中文入门教程
Qt Designer窗口布局Layouts提供了四种布局方法,他们是: Vertical Layout 纵向布局Horizontal Layout 横向布局Grid Layout 栅格布局Form ...
- [ PyQt入门教程 ] Qt Designer工具的布局管理
这节课很重要..界面整洁美观与否就看布局了..这里讲布局方法,至于设计的天赋与最终界面的美感那就看造化了.. 本文主要讲述Qt Designer工具实现界面控件布局管理,就是排列组合控件.包括水平布局 ...
- Qt Designer布局预览正常,代码调用时所有控件堆在一起
一.实验环境 1.Windows10x64 2.anaconda4.6.9 + python3.7.1(anaconda集成,不需单独安装) 3.pyinstaller3.5 二.问题描述 1.Qt ...
- 第九章、Qt Designer可视化设计界面布局组件介绍
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 在Qt Designer中,在左边部件栏的提供了界面布局相关部件,如图: 可以看到共包含有 ...
- Qt Designer 修改窗体大小改变控件位置
一.新建一个窗体 用qt designer 新建一个QWidget窗体, 在窗体中右键 选择布局, 发现布局是选择不了的,这个是因为窗体里面没有添加控件, 任意添加空间后便可选择 右键-- 布局-- ...
- 编写Qt Designer自定义控件(二)——编写自定义控件界面
接上文:编写Qt Designer自定义控件(一)——如何创建并使用Qt自定义控件 既然是控件,就应该有界面,默认生成的控件类只是一个继承了QWidget的类,如下: #ifndef LOGLATED ...
- 编写Qt Designer自定义控件
一)流程概述 在使用Qt Designer设计窗体界面时,我们可以使用Widget Box里的窗体控件非常方便的绘制界面,比如拖进去一个按钮,一个文本编辑器等.虽然Qt Designer里的控件可以满 ...
- 痞子衡嵌入式:超级好用的可视化PyQt GUI构建工具(Qt Designer)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是PyQt GUI构建工具Qt Designer. 痞子衡开博客至今已有好几年,一直以嵌入式开发相关主题的文章为主线,偶尔穿插一些其他技术 ...
- QT Designer基础——登录界面设计基础版2
认识QT Designer提供的可选控件:以下八个大类 Layouts:布局相关 Spacers:留空 Buttons:可点击的按钮类 Item Views和 Item Widgets:高级控件,例如 ...
随机推荐
- Entity Framework常用方法及案例
⒈Skip(int count) 说明:跳过集合的前n个元素:延迟.即我们跳过给定的数目返回后面的结果集. ⒉Take(int count) 说明:获取集合的前n个元素:延迟.即只返回限定数量的结果集 ...
- python中super函数的参考
https://rhettinger.wordpress.com/2011/05/26/super-considered-super/ http://wiki.jikexueyuan.com/proj ...
- python之成像库pillow
目录 python之成像库pillow 官方文档 图像模块(Image.Image) Image模块的功能 Image.new(mode,size,color): Image.open(file,mo ...
- 编译LNMP部署动态网站环境
LNMP动态网站部署架构是由一套 Linux+Nginx+MySQL+PHP 组成的动态网站系统解决方案. 以下配置环境为:Linux=RHEL7 --> Nginx=1.13 --> M ...
- redis 学习(16)-- redis 持久化
redis 持久化 什么是持久化 redis 将所有数据保持在内存中,对数据的更新将异步地保存在磁盘中 持久化的方式 1. 快照 快照是某时某刻对数据的完整备份. 在: MySQL Dump Redi ...
- Java后端技术面试汇总(第五套)
1.Java相关 • 乐观悲观锁的设计,如何保证原子性,解决的问题:• char和double的字节,以及在内存的分布是怎样:• 对象内存布局,然后讲下对象的死亡过程?• 对象头,详细讲下:• syn ...
- java 问题汇总
1.自动加载出错 require a bean of .... The injection point has the following annotations: - @org.springfram ...
- 01 Redis基础
NoSQL 学名(not only sql) 特点: 存储结构与mysql这一种关系型数据库完全不同,nosql存储的是KV形式 nosql有很多产品,都有自己的api和语法,以及业务场景 产品种类: ...
- 【Java面试题】解释内存中的栈(stack)、堆(heap)和静态存储区的用法
Java面试题:解释内存中的栈(stack).堆(heap)和静态存储区的用法 堆区: 专门用来保存对象的实例(new 创建的对象和数组),实际上也只是保存对象实例的属性值,属性的类型和对象本身的类型 ...
- git ignore 如何忽略已经提交的文件修改
git ignore git ignore的作用很简单,本地仓库忽略一些文件的修改. ignore的规格可以按文件匹配,按后缀匹配或者按文件夹匹配. 如果在项目开发过程中,需要忽略某一个文件已经提交的 ...