QT 常用控件二
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 常用控件二的更多相关文章
- Qt常用控件
Qt常用控件 QWidget与QFrame QWidget所有图形控件的基类 QFrame与QWidget的区别 QFrame是基本控件的基类, QWidget是QFrame的基类. 因此QFrame ...
- QT常用控件(三)——自定义控件封装
引言 Qt已经提供了很多的基础控件供开发使用,而Qt原生的控件有时候并不能满足我们的需求,特别是在工业的运用上,比如我们需要一个日期时间的选择器,Qt虽然已经提供了原生的QDateTime控件,但这个 ...
- Qt——常用控件样式
下面是我设计.调整.修改的Qt控件样式,仅供参考. Github地址:https://github.com/ikongziming/QtDemo/tree/master/StyleSheetDemo ...
- QT 常用控件一
QWidget 创建窗口 如果widget未使用腹肌进行创建,则在显示时视为窗口或顶层widget. 由于顶层widget没有父级对象类来确保在其不再使用时删除,所以需要开发人员在应用程序中对其进程跟 ...
- QT常用控件(一)——菜单栏和对话框
引言 QMainWindow 是一个为用户提供主窗口程序的类,包含一个菜单栏(menu bar).多个工具栏(tool bars).多个锚接部件(dock widgets).一个状态栏(status ...
- QT+常用控件_Line Edit
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QDebug> #incl ...
- GUI创建各常用控件(二)
继续接着上一篇! 在我看来有一点需要申明:由于是GUI的相关知识,所以我只是在复习中粗略的总结而已,因此参考价值可能有限,更多的是当作自己学习的一个记录以及便于自己查阅. 好啦!干货继续: 1.类似于 ...
- Android support library支持包常用控件介绍(二)
谷歌官方推出Material Design 设计理念已经有段时间了,为支持更方便的实现 Material Design设计效果,官方给出了Android support design library ...
- MFC编程入门之二十二(常用控件:按钮控件Button、Radio Button和Check Box)
本节继续讲解常用控件--按钮控件的使用. 按钮控件简介 按钮控件包括命令按钮(Button).单选按钮(Radio Button)和复选框(Check Box)等.命令按钮就是我们前面多次提到的侠义的 ...
随机推荐
- *MyBatis框架 在控制台打印sql语句
在 log4j.properties 中将这段代码添加进去就好了#log4j.rootLogger=INFO, Console#Consolelog4j.appender.Console=org.a ...
- [MySQL Reference Manual] 4 MYSQL Program
4 MYSQL Program 目录 4 MYSQL Program 4.3 MySQL Server和Server启动程序 4.3.1 mysqld 4.3.2 mysqld_safe 4.3.3 ...
- SQL Server 2012 学习笔记5
1. 索引(Index) 索引是快速的定位和查找数据.索引分为: 聚集索引:唯一,默认主键,一般选取比较连贯的字段,聚集索引是物理排序. 非聚集索引: 并没有把数据物理排序,只是多了一个索引页(包括索 ...
- 多年前写的文本框扩展控件(有ValueChanging事件等),已放github
本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 阅读目录 介绍 起因 代码 使用 GitHub ...
- 记一次MongoDB Map&Reduce入门操作
需求说明 用Map&Reduce计算几个班级中,每个班级10岁和20岁之间学生的数量: 需求分析 学生表的字段: db.students.insert({classid:1, age:14, ...
- iOS OC和Swift进行互相调用
有时候 ,我们会涉及到双向混合编程,特别是OC和swift的互相引用. swift调用oc的方法: 1.桥接文件,一般是swift工程,在创建一个oc文件时,系统自动添加(不用改名,直接默认即可) 2 ...
- my_log
//功能:定时向文件中写入时间,如果进程终止,下次打开同一个文件会继续之前的编号书写 #include<stdio.h> #include<time.h> int main(i ...
- Android开发中的Json字符串与复杂的嵌套对象互转。
Gson 可能是大家都觉得比较简单吧.我发现用JSONObject和网上下载的JSONHelper类使用起来很无语,只能解析简单的单层对象,如果有嵌套的就不能直转转成可用对象了.所以网上找了一会儿,发 ...
- 虚拟机centos6.5 --hadoop2.6集群环境搭建
一.环境说明 虚拟机:virtualBox 系统:centos6.5,64位 集群:3个节点 master 192.168.12.232 slave01 192.168.12.233 slave02 ...
- AngularJS 拦截器
在需要进行身份验证时,在请求发送给服务器之前或者从服务器返回时对其进行拦截,是比较好的实现手段. 例如,对于身份验证,如果服务器返回401状态码,将用户重定向到登录页面. AngularJS通过拦截器 ...