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);
}

最新文章

  1. MySQL学习笔记01_数据库基础知识
  2. Linux如何下解压windows下的.zip和.rar文件
  3. 计算&IO密集型任务的 优化
  4. Java遍历List的时候删除item
  5. vim总结
  6. 以蓝牙开发的视觉解读微信Airsync协议
  7. (转)Jmeter内存溢出处理方式记录
  8. MyBatis 实践 -动态SQL/关联查询
  9. 二维码URL自己主动辨别Android和ISO设备,以便扫码后倒入不同的下载链接
  10. JavaScript之insertBefore()和自定义insertAfter()的用法。
  11. navicat重新系统丢失libmysql_e
  12. Python+selenium打开网页
  13. cmd非运行完再保存,结果显示&保存同时进行
  14. [JavaScript,Java,C#,C++,Ruby,Perl,PHP,Python][转]流式接口(Fluent interface)
  15. Appium基础知识与环境搭建
  16. 搭建nginx服务器,虚拟主机,反向代理
  17. SQL记录-PLSQL过程
  18. Android WebView加载Html右边空白问题的解决方案
  19. python脚本后台执行
  20. js 获取客户端mac地址

热门文章

  1. Android Build Error(1)
  2. Enabling Cross-Origin Requests in ASP.NET Web API 2
  3. SQL Server中的锁的简单学习
  4. (1)编写一个接口ShapePara,要求: 接口中的方法: int getArea():获得图形的面积。int getCircumference():获得图形的周长 (2)编写一个圆类Circle,要求:圆类Circle实现接口ShapePara。 该类包含有成员变量: radius:public 修饰的double类型radius,表示圆的半径。 x:private修饰的double型变量x,
  5. 漏洞科普:对于XSS和CSRF你究竟了解多少
  6. 【mysql】关于乐观锁
  7. PHP读取mssql,json数据中文乱码
  8. 烂泥:Linux源码包制作RPM包之Apache
  9. canvas作为背景
  10. 利用网络流传的WebShell默认密码库寻找WebShell