使用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:高级控件,例如 ...
随机推荐
- Spring 最常用的 7 大类注解,史上最强整理!
随着技术的更新迭代,Java5.0开始支持注解.而作为java中的领军框架spring,自从更新了2.5版本之后也开始慢慢舍弃xml配置,更多使用注解来控制spring框架. 而spring的的注解那 ...
- ASP.NET Core中使用EasyCaching作为缓存抽象层
⒈是什么? 和CacheManager差不多,两者的定位和功能都差不多. EasyCaching主要提供了下面的几个功能 统一的抽象缓存接口 多种常用的缓存Provider(InMemory,Redi ...
- Spring框架是怎么解决Bean之间的循环依赖的 (转)
问题: 循环依赖其实就是循环引用,也就是两个或则两个以上的bean互相持有对方,最终形成闭环.比如A依赖于B,B依赖于C,C又依赖于A.如下图: 如何理解“依赖”呢,在Spring中有: 构造器循 ...
- Linux安全审计
Client: OMAudit_agent.py #!/usr/bin/env python #coding:utf- import sys import socket import fcntl im ...
- laravel 中使用es 流程总结
1. query_string 2.mutil_match 3.match 4.should.must.bool 5.analysiz
- Chrome开发者工具详解(一)之使用断点来调试代码上
1.断点调试是啥?难不难? 断点调试其实并不是多么复杂的一件事,简单的理解无外呼就是打开浏览器,打开sources找到js文件,在行号上点一下罢了.操作起来似乎很简单,其实很多人纠结的是,是在哪里打断 ...
- 链式栈的C++实现
这是去年的内容,之前放在github的一个被遗忘的reporsity里面,今天看到了就拿出来 #include<iostream> #include<string> using ...
- mybatis-plus简单了解
mybatis-plus入门了解和简单使用 MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生. 特性: ...
- Shell随机生成字符串
随机生成18位的字符串,数字 大小写字符 斜线 password=`openssl rand -base64 |-`
- vue路由守卫触发顺序
不同组件之间的路由跳转流程图 导航被触发(A–>B) 调用A组件内路由守卫beforeRouteLeave(to,from,next) 调用全局路由前置守卫router.beforeEach(t ...