QT提供QHBoxLayout类、QVBoxlayout类及QGridLayout类等的基本布局管理,分别是水平排列布局,垂直排列布局和网格排列布局
addWidget()方法用于向布局中加入需要布局的控件
addLayout()方法用于向布局中加入需要布局的子布局
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
/*设置窗口标题*/
setWindowTitle("用户信息"); /*左侧*/
/*左侧第一行*/
label1=new QLabel(tr("用户名"));
edit1=new QLineEdit();
QGridLayout * lay1=new QGridLayout();
lay1->addWidget(label1,,);
lay1->addWidget(edit1,,); /*左侧第二行*/
label2=new QLabel(tr("姓名"));
edit2=new QLineEdit();
lay1->addWidget(label2,,);
lay1->addWidget(edit2,,); /*左侧第三行*/
label3=new QLabel(tr("性别"));
comb1=new QComboBox();
comb1->addItem(tr("男"));
comb1->addItem(tr("女"));
lay1->addWidget(label3,,);
lay1->addWidget(comb1,,); /*左侧第四行*/
label4=new QLabel(tr("部门"));
txt1=new QTextEdit();
lay1->addWidget(label4,,);
lay1->addWidget(txt1,,); /*左侧第五行*/
label5=new QLabel(tr("年龄"));
edit3=new QLineEdit();
lay1->addWidget(label5,,);
lay1->addWidget(edit3,,); /*左侧第六行 */
label6=new QLabel(tr("备注"));
label6->setFrameStyle(QFrame::Panel||QFrame::Sunken);
/*addWidget第四个参数表示占据几行,第五个参数表示占据几列*/
lay1->addWidget(label6,,,,); /*setColumnStretch()设置QGridLayout每列的占位比*/
/*设置第0列和第1列的占位比,这里设置第0列和第1列的比例是1:3;--setColumnStretch(0,1)设置第0列占位比是1,setColumnStretch(1,3)设置第1列的占位比是3*/
lay1->setColumnStretch(,);
lay1->setColumnStretch(,); /*右侧*/
QVBoxLayout * lay3=new QVBoxLayout();
/*右侧第一行*/
QHBoxLayout *lay2=new QHBoxLayout();
label6=new QLabel(tr("头像"));
label7=new QLabel();
/*定义图片对象:注意QT的当前路径是build-untitled-Desktop_Qt_5_2_0_MinGW_32bit-Debug目录下*/
QPixmap icon("1.png");
/*设置label7的背景图片*/
label7->setPixmap(icon);
/*设置label7的大小*/
/*这里设置label7的大小为背景图片的大小*/
label7->resize(icon.width(),icon.height());
btn1=new QPushButton("更新");
/*设置QHBoxLayout中控件间的间距*/
lay2->setSpacing();
lay2->addWidget(label6);
lay2->addWidget(label7);
lay2->addWidget(btn1); /*右侧第二行*/
label8=new QLabel(tr("个人说明")); /*右侧第三行*/
txt2=new QTextEdit(); /*设置边距*/
lay3->setMargin();
/*addLayout()布局中加入布局*/
lay3->addLayout(lay2);
lay3->addWidget(label8);
lay3->addWidget(txt2); /*底层*/
btn2=new QPushButton(tr("确认"));
btn3=new QPushButton(tr("取消"));
QHBoxLayout *lay4=new QHBoxLayout();
/*加入一个占位符*/
lay4->addStretch();
lay4->addWidget(btn2);
lay4->addWidget(btn3); /*创建全局Layout*/
QGridLayout * mainlay=new QGridLayout(this);
mainlay->setMargin();
mainlay->setSpacing();
mainlay->addLayout(lay1,,);
mainlay->addLayout(lay3,,);
mainlay->addLayout(lay4,,,,);
/*设置layout与控件大小一致,不能随意改变layout的大小*/
mainlay->setSizeConstraint(QLayout::SetFixedSize);
}

QT 常用控件二的更多相关文章

  1. Qt常用控件

    Qt常用控件 QWidget与QFrame QWidget所有图形控件的基类 QFrame与QWidget的区别 QFrame是基本控件的基类, QWidget是QFrame的基类. 因此QFrame ...

  2. QT常用控件(三)——自定义控件封装

    引言 Qt已经提供了很多的基础控件供开发使用,而Qt原生的控件有时候并不能满足我们的需求,特别是在工业的运用上,比如我们需要一个日期时间的选择器,Qt虽然已经提供了原生的QDateTime控件,但这个 ...

  3. Qt——常用控件样式

    下面是我设计.调整.修改的Qt控件样式,仅供参考. Github地址:https://github.com/ikongziming/QtDemo/tree/master/StyleSheetDemo ...

  4. QT 常用控件一

    QWidget 创建窗口 如果widget未使用腹肌进行创建,则在显示时视为窗口或顶层widget. 由于顶层widget没有父级对象类来确保在其不再使用时删除,所以需要开发人员在应用程序中对其进程跟 ...

  5. QT常用控件(一)——菜单栏和对话框

    引言 QMainWindow 是一个为用户提供主窗口程序的类,包含一个菜单栏(menu bar).多个工具栏(tool bars).多个锚接部件(dock widgets).一个状态栏(status ...

  6. QT+常用控件_Line Edit

    #include "mainwindow.h" #include "ui_mainwindow.h" #include <QDebug> #incl ...

  7. GUI创建各常用控件(二)

    继续接着上一篇! 在我看来有一点需要申明:由于是GUI的相关知识,所以我只是在复习中粗略的总结而已,因此参考价值可能有限,更多的是当作自己学习的一个记录以及便于自己查阅. 好啦!干货继续: 1.类似于 ...

  8. Android support library支持包常用控件介绍(二)

    谷歌官方推出Material Design 设计理念已经有段时间了,为支持更方便的实现 Material Design设计效果,官方给出了Android support design library ...

  9. MFC编程入门之二十二(常用控件:按钮控件Button、Radio Button和Check Box)

    本节继续讲解常用控件--按钮控件的使用. 按钮控件简介 按钮控件包括命令按钮(Button).单选按钮(Radio Button)和复选框(Check Box)等.命令按钮就是我们前面多次提到的侠义的 ...

随机推荐

  1. org.apache packages can't be resolved in Eclipse解决方案

    删除.m2仓库里面对应的jar包,重新Maven->update project

  2. 设计模式 之 观察者(Observer)模式

    观察者(observer)模式定义了一对多的依赖关系,让多个观察者对象能够同时监听某一主题对象.这个主题对象中的状态发生改变时,就会通知所有的观察者对象. 观察者模式的结构图: 结构中各个部分的含义: ...

  3. WP与IOS与Android的后台机制相同与不同

    简介: 1.Windows Phone与IOS的后台机制是 后台挂起 + 待机 + 通知代理 这样一种模式.也就是说一个程序在后台的时候,处于一种挂起状态,程序不能访问CPU.网络和其他系统资源,除了 ...

  4. yii2 输出xml格式数据

    作者:白狼 出处:http://www.manks.top/yii2_xml_response.html.html本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文 ...

  5. android Activity生命周期(设备旋转、数据恢复等)与启动模式

    1.Activity生命周期     接下来将介绍 Android Activity(四大组件之一) 的生命周期, 包含运行.暂停和停止三种状态,onCreate.onStart.onResume.o ...

  6. MySQL数据库出现The server quit without updating PID file.

    一.服务器环境 操作系统:CentOS-6.4 服务器环境:集成环境LNMP1.0 二.步骤重现 1.安装LNMP1.0,具体操作方法见这里,安装成功: 2.因个人需求,现将MySQL数据库存放在/d ...

  7. 【JSP】JSP基础学习记录(二)—— JSP的7个动作指令

    2.JSP的7个动作指令: 动作指令与编译指令不同,编译指令是通知Servlet引擎的处理消息,而动作指令只是运行时的动作.编译指令在将JSP编译成Servlet时起作用:而处理指令通常可替换成JSP ...

  8. 检测PC端和移动端的方法之一

    window.mobileCheck = function() { var check = false; (function(a){if(/(android|bb\d+|meego).+mobile| ...

  9. Windows下常用软件工具的命令

    Linux上主要操作是命令,懂一点linux知识的都知道,其实windows下边很多工具也是可以用命令来操作打开的,这样会提高效率,节省很多的时间.下边就记录一下常用的命令. 一.常用命令 1.远程桌 ...

  10. BI软件搞不定业务管理报表的需求

    BI是商业智能的缩写,是可以帮助企业做出明智的业务经营决策的工具,其数据来源于各个业务系统,如ERP.CRM.SCM.进销存.HER.OA等. BI系统不同于传统的管理信息系统,他号称是一个整体应用的 ...