【转】QGridLayout 详解

转自:https://blog.csdn.net/u013928315/article/details/78123573

一、QGridLayout属性介绍

 

1、QGridlayout以方格的形式管理窗口部件,先看QGridLayout的属性,如下图

2、各个参数的介绍

layoutLeftMargin ...至layoutBottomMargin在ui_MainWindow.h中自动生成的代码是:

gridLayout->setContentsMargins(20, 10, 10, 10);

学过CSS都知道,这是设置一个元素所有外边距的宽度,或者设置各边上外边距的宽度

On most platforms, the margin is 11 pixels in all directions.

 

HorizontalSpacing...至VerticalSpacing在ui_MainWindow.h中自动生成的代码是:

 

        gridLayout->setHorizontalSpacing(6);

        gridLayout->setVerticalSpacing(6);

        这是设置两个控件之间的水平和竖直距离

 

LayoutRowStretch在ui_MainWindow.h中自动生成的代码是:

 

gridLayout->setRowStretch(0, 1);

        gridLayout->setRowStretch(1, 1);

        gridLayout->setRowStretch(2, 1);

表示在第0行、第1行、第2行 在竖直方向的空间比例分配,大家稍微改一下参数就能看出来效果

LayoutColumnStretch在ui_MainWindow.h中自动生成的代码是:      

gridLayout->setColumnStretch(1, 1);

 

表示设置第0列、第1列两者在水平方向的空间比例分配。

 

 

LayoutRowMinimumHeight在ui_MainWindow.h中自动生成的代码是:

 

        gridLayout->setRowMinimumHeight(0, 1);

        gridLayout->setRowMinimumHeight(1, 2);

        gridLayout->setRowMinimumHeight(2, 3);

表示在第0行、第1行、第2行的最小高度是1pixels,2pixels,3pixels

LayoutColumnMinimumWidth在ui_MainWindow.h中自动生成的代码是:

 

  gridLayout->setColumnMinimumWidth(0, 4);

        gridLayout->setColumnMinimumWidth(1, 5);

表示设置第0列、第1列的最小宽度是4pixels、5pixels

 

 

LayoutSizeConstraint在ui_MainWindow.h中自动生成的代码是:

gridLayout->setSizeConstraint(QLayout::SetDefaultConstraint);

 

This property holds the resize mode of the layout.看下表

 

 

 

 

enum QLayout::SizeConstraint

The possible values are:

Constant Value Description

QLayout::SetDefaultConstraint0The main widget's minimum size is set to minimumSize(), unless the widget already has a minimum size.
QLayout::SetFixedSize3The main widget's size is set to sizeHint(); it cannot be resized at all.
QLayout::SetMinimumSize2The main widget's minimum size is set to minimumSize(); it cannot be smaller.
QLayout::SetMaximumSize4The main widget's maximum size is set to maximumSize(); it cannot be larger.
QLayout::SetMinAndMaxSize5The main widget's minimum size is set to minimumSize() and its maximum size is set tomaximumSize().
QLayout::SetNoConstraint1

The widget is not constrained.

 

 

 

QFormLayout属性介绍

1、QFormLayout类管理输入型控件和它的label组成的那些form表格,包括它的界面参数如下图

 

 

2、界面中对应的代码如下表,

 

 

Cpp代码   收藏代码

  1. formLayout = new QFormLayout(widget1);  
  2.         formLayout->setSpacing(6);  
  3.         formLayout->setContentsMargins(11, 11, 11, 11);  
  4.         formLayout->setObjectName(QString::fromUtf8("formLayout"));  
  5.         formLayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow);  
  6.         formLayout->setRowWrapPolicy(QFormLayout::DontWrapRows);  
  7.         formLayout->setContentsMargins(0, 0, 0, 0);  
  8.         label_4 = new QLabel(widget1);  
  9.         label_4->setObjectName(QString::fromUtf8("label_4"));  
  10.   
  11.         formLayout->setWidget(0, QFormLayout::LabelRole, label_4);  
  12.   
  13.         lineEdit = new QLineEdit(widget1);  
  14.         lineEdit->setObjectName(QString::fromUtf8("lineEdit"));  
  15.   
  16.         formLayout->setWidget(0, QFormLayout::FieldRole, lineEdit);  
  17.   
  18.         label_5 = new QLabel(widget1);  
  19.         label_5->setObjectName(QString::fromUtf8("label_5"));  
  20.   
  21.         formLayout->setWidget(1, QFormLayout::LabelRole, label_5);  
  22.   
  23.         comboBox = new QComboBox(widget1);  
  24.         comboBox->setObjectName(QString::fromUtf8("comboBox"));  
  25.   
  26.         formLayout->setWidget(1, QFormLayout::FieldRole, comboBox);  

 

3、其中值得一说的是:LayoutFieldGrowthPolicy属性

 

 

enum QFormLayout::FieldGrowthPolicy

This enum specifies the different policies that can be used to control the way in which the form's fields grow.

Constant Value Description

QFormLayout::FieldsStayAtSizeHint0The fields never grow beyond their effective size hint. This is the default forQMacStyle.
QFormLayout::ExpandingFieldsGrow1Fields with an horizontal size policy of Expanding or MinimumExpanding will grow to fill the available space. The other fields will not grow beyond their effective size hint. This is the default policy for Plastique.
QFormLayout::AllNonFixedFieldsGrow2All fields with a size policy that allows them to grow will grow to fill the available space. This is the default policy for most styles.

 

 

 

4、还有一个属性值得说:LayoutRowWrapPolicy

 

This property holds the way in which the form's rows wrap.

//这个属性设置了表格如何排版各个元素

If you want to display each label above its associated field (instead of next to it), set this property to WrapAllRows.

//如果你想把每个标签放在相关字段的上方,而不是和它相邻,就设置这个属性值为WrapAllRows。

 

 

enum QFormLayout::RowWrapPolicy

This enum specifies the different policies that can be used to control the way in which the form's rows wrap.

Constant Value Description

QFormLayout::DontWrapRows0Fields are always laid out next to their label. This is the default policy for all styles except Qt Extended styles and QS60Style.
QFormLayout::WrapLongRows1Labels are given enough horizontal space to fit the widest label, and the rest of the space is given to the fields. If the minimum size of a field pair is wider than the available space, the field is wrapped to the next line. This is the default policy for Qt Extended styles and andQS60Style.
QFormLayout::WrapAllRows2Fields are always laid out below their label.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/436208.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java import 出错,Eclipse的java代码出错:The import XXXX cannot be resolved

折腾Eclipse时,经常会遇到这种情况:缺少某个库,找到之后,需要将该库,jar包,加入到当前项目,使得代码中的import xxx得以正常导入。【如何在Eclipse中导入/添加(外部的)库/jar包】基本思路&#…

WCF从理论到实践(14):WCF解决方案模板 (转)

WCF从理论到实践(14):WCF解决方案模板 正所谓磨刀不误砍柴工,虽然VS2008为我们提供了WCFServiceLibrary项目模板,但在实际开发的时候,我们通常更喜欢按照自己的方式来建立WCF项目,通常情况下,我们将服务契约(通常是接口)数据契约,消息契约等契约单独作为一个项目,而将服务的实现…

thinkphp index.php隐藏,thinkphp5怎么隐藏index.php入口文件?

隐藏方法:1、打开apache的http.conf配置文件,开启mod_rewrite.so模块;2、AllowOverride None项中将None改为All;3、修改“.htaccess”的配置内容,将原代码替换为官方手册提供的代码。thinkphp现在的php主流框架之一&am…

【转】extern “C“和__declspec(dllexport)以及__declspec(dllimport) 和def的简单解析

转自:https://blog.csdn.net/xupan_jsj/article/details/9028759 前面的extern "C" __declspec(dllexport) __declspec(dllimport)都是用于函数或者变量,甚至类的声明的(可以把extern "C"放在class的前面,…

【转】extern “C“以及__declspec(dllexport) 讲解和def文件dll导出方法

转自:https://blog.csdn.net/qing666888/article/details/41135245 一,__ declspec(dllexport): 将一个函数声名为导出函数,就是说这个函数要被其他程序调用,即作为DLL的一个对外函数接口。通常…

【转】DICOM医学图像处理:浅析SWF、MWL、SPS、MPPS

转自:https://blog.csdn.net/zssureqh/article/details/40151107 背景: 最近重新花时间阅读了DICOM标准,顺带着看了一下HL7标准和IHE,对标题中提到的SWF、MWL、SPS和MPPS有了更进一步的认识,现将自己的理解整理出来&a…

Php点击更换封面,JavaScript_js实现点击图片改变页面背景图的方法,本文实例讲述了js实现点击图 - phpStudy...

js实现点击图片改变页面背景图的方法本文实例讲述了js实现点击图片改变页面背景图的方法。分享给大家供大家参考。具体实现方法如下:点击图片即改变页面的背景图片希望本文所述对大家的javascript程序设计有所帮助。相关阅读:C语言编程中统计输入的行数以及单词个数…

串口通讯基础及S3C2410 UART控制器

数据通信的基本方式可分为并行通信与串行通信两种: 并行通信:是指利用多条数据传输线将一个资料的各位同时传送。它的特点是传输速度快,适用于短距离通信,但要求通讯速率较高的应用场合。 串行通信:是指利用一条传输线…

几个实用的Servlet应用例子-入门、cookie、session及上传文件

1Servlet可以被认为是服务端的applet,它被WEB服务器加载和执行,前端可以显示页面和获得页面数据,后台可以操纵数据库,能完成JavaBean的很多功能。在这里我较为详细的说说Servlet在Cookie,Session和上传文件上的应用&am…

【转】DICOM医学图像处理:DIMSE消息发送与接收“大同小异”之DCMTK fo-dicom mDCM

转自:https://my.oschina.net/zssure/blog/354816 背景: 从DICOM网络传输一文开始,相继介绍了C-ECHO、C-FIND、C-STORE、C-MOVE等DIMSE-C服务的简单实现,博文中的代码给出的实例都是基于fo-dicom库来实现的,原因只有一…

公司间交易学习笔记---概述

本系列笔记是我在学习公司间交易的过程中的随笔,有些是我自己的想法,内容可能跟教程有所出入,由于对AX的应用部分理解得很浅,所以如果错误还请多多指教。 为了处理集团公司中各个分公司之间的交易,AX采用了InterCompan…

用VS2005开发WinCE程序调试图文教程

一、WinCE 模拟器通过ActiveSync 6.1(即Windows Mobile设备中心)连接PC ActiveSync 6.1:http://www.cr173.com/soft/26994.html 1.启动WinCE模拟器 命令行: start .\DeviceEmulator.exe WINCE镜像\Wince5.bin /memsize 256 /video 480x272x16 /sharedf…

【转】 ADO.NET最佳实践

本文转自:http://blog.csdn.net/spidertan/archive/2003/12/13/17110.aspx 概述: 本文在微软站点资源的基础上加工整理而成,意在介绍在你的ADO.NET应用程序中执行和完成性能优化、稳定性和功能性方面提供最佳的解决方案;同…

php 变量文件间传递,同一文件的两个JS函数之间如何传变量?

满意答案ed_ch2013.11.06采纳率:44% 等级:12已帮助:8801人定义成全局变量就可以了var style_key;function change_mystyle(my){style_keymy.options[my.selectedIndex].value;if(style_key 114la){document.getElementById(shoostyleicon…

获取 Web 设计的免费资源

Web 开发人员可以找到很多免费资源,尽管其中一些资源会比另外一些资源更加自由。如果您正在设计网站或 Web 应用程序,那么不管是静态的还是所有可以想到的动态 Ajax 内容,都能找到减轻您的劳动强度并为网站增色的资源。本文从免费图标到 Web …

设计模式C++实现(1)——工厂模式

软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书&#xff0…

java对象间的转型,详细讲述Java中的对象转型

向上转型:子类对象转为父类,父类可以是接口。公式:Father f new Son();Father是父类或接口,son是子类。向下转型:父类对象转为子类。公式:Son s (Son)f;我们将形参设为父类Animal类型,当执行t…

C++设计模式之一 工厂模式(简单工厂、工厂和抽象工厂)

今天开始这个系列之前,心里有些恐慌,毕竟园子里的高手关于设计模式的经典文章很多很多,特别是大侠李会军、吕震宇 老师的文章更是堪称经典。他们的文笔如行云流水,例子活泼生动,讲解深入浅出。好在他们都是用C#描述&am…

【转】Windows消息传递机制详解

林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka Windows是一个消息(Message)驱动系统。Windows的消息提供了应用程序之间、应用程序与Windows系统之间进行通信的手段。应用程序想要实现的功能由消息来触发,并且靠对消…

设计模式C++实现(2)——单例模式

软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书&#xff0…