在使用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进行布局的更多相关文章

  1. Qt Designer中文入门教程

    Qt Designer窗口布局Layouts提供了四种布局方法,他们是: Vertical Layout 纵向布局Horizontal Layout 横向布局Grid Layout  栅格布局Form ...

  2. [ PyQt入门教程 ] Qt Designer工具的布局管理

    这节课很重要..界面整洁美观与否就看布局了..这里讲布局方法,至于设计的天赋与最终界面的美感那就看造化了.. 本文主要讲述Qt Designer工具实现界面控件布局管理,就是排列组合控件.包括水平布局 ...

  3. Qt Designer布局预览正常,代码调用时所有控件堆在一起

    一.实验环境 1.Windows10x64 2.anaconda4.6.9 + python3.7.1(anaconda集成,不需单独安装) 3.pyinstaller3.5 二.问题描述 1.Qt ...

  4. 第九章、Qt Designer可视化设计界面布局组件介绍

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 在Qt Designer中,在左边部件栏的提供了界面布局相关部件,如图: 可以看到共包含有 ...

  5. Qt Designer 修改窗体大小改变控件位置

    一.新建一个窗体 用qt designer 新建一个QWidget窗体, 在窗体中右键 选择布局, 发现布局是选择不了的,这个是因为窗体里面没有添加控件, 任意添加空间后便可选择 右键-- 布局-- ...

  6. 编写Qt Designer自定义控件(二)——编写自定义控件界面

    接上文:编写Qt Designer自定义控件(一)——如何创建并使用Qt自定义控件 既然是控件,就应该有界面,默认生成的控件类只是一个继承了QWidget的类,如下: #ifndef LOGLATED ...

  7. 编写Qt Designer自定义控件

    一)流程概述 在使用Qt Designer设计窗体界面时,我们可以使用Widget Box里的窗体控件非常方便的绘制界面,比如拖进去一个按钮,一个文本编辑器等.虽然Qt Designer里的控件可以满 ...

  8. 痞子衡嵌入式:超级好用的可视化PyQt GUI构建工具(Qt Designer)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是PyQt GUI构建工具Qt Designer. 痞子衡开博客至今已有好几年,一直以嵌入式开发相关主题的文章为主线,偶尔穿插一些其他技术 ...

  9. QT Designer基础——登录界面设计基础版2

    认识QT Designer提供的可选控件:以下八个大类 Layouts:布局相关 Spacers:留空 Buttons:可点击的按钮类 Item Views和 Item Widgets:高级控件,例如 ...

随机推荐

  1. Type类的使用

    Type类的使用(类反射)通过类获得Type: Type t = typeof(Person)通过实例对象获得类的Type: Type t = p.GetType()获取Type的方法:MethodI ...

  2. CentOS 7 yum安装LAMP,LNMP并搭建WordPress个人博客网站

    本次实验要进行的是在CentOS7.2,内核版本3.10.0-327.el7.x86_64的环境下搭建LAMP和LNMP,并在此之上做一个WordPress博客网站. [root@Shining ~] ...

  3. Java 父类的static成员在子类中的继承情况

    父类的static成员在子类中的继承状况是怎么样的呢? 昨天突然想到这个问题,刚才试验了一下,发现很容易解释,没什么值得探讨的. 首先在学习继承时,书本都没有强调static成员有什么特殊的地方. 然 ...

  4. Mysql学习(二)之通过homebrew安装mysql后,为什么在系统偏好设置里没有mysql

    原因 用brew install packagename是用来安装命令行工具的,一般不可能影响到图形界面. mysql官方文档是通过dmg文件安装的: The MySQL Installation P ...

  5. ABAP常用函数归纳

    转至:http://blog.csdn.net/forever_crazy/article/details/17707745 获取当前逻辑系统标识:OWN_LOGICAL_SYSTEM_GET 一.日 ...

  6. TensorFlow入门——安装

    由于实验室新配了电脑,旧的电脑就淘汰下来不用,闲来无事,就讲旧的电脑作为个人的工作站来使用. 由于在旧电脑上安装的是Ubuntu 16.04 64bit系统,系统自带的是Python 2.7,版本选择 ...

  7. 自动化测试报告之allure使用基础指南

    差不多三个月前些的教程,然后跳槽了,自定义模块还没有写....后续也不知道有时间补上没有,最近应该会毕竟专注app测试这块了     1.github下载allure安装包:https://githu ...

  8. 1.什么是bat文件

    bat文件是dos下的批处理文件.批处理文件是无格式的文本文件,它包含一条或多条命令.它的文件扩展名为 .bat 或 .cmd. 在命令提示下输入批处理文件的名称,或者双击该批处理文件,系统就会调用c ...

  9. DedeAMPZ 网吧能安装却不能打开网站

    只需把 监听IP的连接里的 LMHOSTS查询 禁用就行了. 方法: 连接属性-->TCP/IP 协议属性-->WINS 选项卡-->去掉 启用 LMHOSTS查询 前面的勾. by ...

  10. 31C3 CTF web关writeup

    0x00 背景 31c3 CTF 还是很人性化的,比赛结束了之后还可以玩.看题解做出了当时不会做的题目,写了一个writeup. 英文的题解可以看这:https://github.com/ctfs/w ...