Widget::Widget(QWidget *parent)
: QWidget(parent)
{
/*设置窗口标题*/
setWindowTitle("用户信息");
/*左侧*/
/*左侧第一行*/
label1=new QLabel(tr("用户名"));
edit1=new QLineEdit();
QGridLayout * lay1=new QGridLayout();
lay1->addWidget(label1,0,0);
lay1->addWidget(edit1,0,1);
/*左侧第二行*/
label2=new QLabel(tr("姓名"));
edit2=new QLineEdit();
lay1->addWidget(label2,1,0);
lay1->addWidget(edit2,1,1);
/*左侧第三行*/
label3=new QLabel(tr("性别"));
comb1=new QComboBox();
comb1->addItem(tr("男"));
comb1->addItem(tr("女"));
lay1->addWidget(label3,2,0);
lay1->addWidget(comb1,2,1);
/*左侧第四行*/
label4=new QLabel(tr("部门"));
txt1=new QTextEdit();
lay1->addWidget(label4,3,0);
lay1->addWidget(txt1,3,1);
/*左侧第五行*/
label5=new QLabel(tr("年龄"));
edit3=new QLineEdit();
lay1->addWidget(label5,4,0);
lay1->addWidget(edit3,4,1);
/*左侧第六行 */
label6=new QLabel(tr("备注"));
label6->setFrameStyle(QFrame::Panel||QFrame::Sunken);
/*addWidget第四个参数表示占据几行,第五个参数表示占据几列*/
lay1->addWidget(label6,5,0,1,2);
/*setColumnStretch()设置QGridLayout每列的占位比*/
/*设置第0列和第1列的占位比,这里设置第0列和第1列的比例是1:3;--setColumnStretch(0,1)设置第0列占位比是1,setColumnStretch(1,3)设置第1列的占位比是3*/
lay1->setColumnStretch(0,1);
lay1->setColumnStretch(1,3);
/*右侧*/
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(20);
lay2->addWidget(label6);
lay2->addWidget(label7);
lay2->addWidget(btn1);
/*右侧第二行*/
label8=new QLabel(tr("个人说明"));
/*右侧第三行*/
txt2=new QTextEdit();
/*设置边距*/
lay3->setMargin(10);
/*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(15);
mainlay->setSpacing(10);
mainlay->addLayout(lay1,0,0);
mainlay->addLayout(lay3,0,1);
mainlay->addLayout(lay4,1,0,1,2);
/*设置layout与控件大小一致,不能随意改变layout的大小*/
mainlay->setSizeConstraint(QLayout::SetFixedSize);
}