//mydialog.h
#ifndef MYDIALOG_H
#define MYDIALOG_H
#include <QDialog>
#include <QLabel>
#include <QLineEdit>
#include <QComboBox> //下拉框
#include <QTextEdit>
#include <QGridLayout>
#include <QPushButton>
#include <QVBoxLayout>
#include <QHBoxLayout>
namespace Ui {
class MyDialog;
}
class MyDialog : public QDialog
{
Q_OBJECT
public:
explicit MyDialog(QWidget *parent = 0);
~MyDialog();
private:
Ui::MyDialog *ui;
private:
//左侧
QLabel* UserNameLabel;
QLabel* NameLabel;
QLabel* SexLabel;
QLabel* DepartmentLabel;
QLabel* AgeLabel;
QLabel* OtherLabel;
QLineEdit* UserNameLineEdit;
QLineEdit* NameLineEdit;
QComboBox* SexComboBox;
QTextEdit* DepartmentTextEdit;
QLineEdit* AgeLineEdit;
QGridLayout* leftLayout;
//右侧
QLabel* HeadLabel;
QLabel* HeadInconLabel;
QPushButton* UpdateHeadBtn;
QHBoxLayout* TopRightLayout;
QLabel* IntroductionLabel;
QTextEdit* IntroductionTextEdit;
QVBoxLayout* RightLayout;
//底部
QPushButton* OkBtn;
QPushButton* CancelBtn;
QHBoxLayout* BottomLayout;
};
#endif // MYDIALOG_H
//mydialog.cpp
#include "mydialog.h"
#include "ui_mydialog.h"
MyDialog::MyDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::MyDialog)
{
ui->setupUi(this);
setWindowTitle(tr("UserInfo"));
/**********左侧**********/
UserNameLabel=new QLabel(tr("用户名:"));
UserNameLineEdit=new QLineEdit;
NameLabel=new QLabel(tr("姓名:"));
NameLineEdit=new QLineEdit;
SexLabel=new QLabel(tr("性别:"));
SexComboBox=new QComboBox;
SexComboBox->addItem(tr("femail"));
SexComboBox->addItem(tr("man"));
DepartmentLabel=new QLabel(tr("部门:"));
DepartmentTextEdit=new QTextEdit;
AgeLabel=new QLabel(tr("年龄"));
AgeLineEdit=new QLineEdit;
OtherLabel=new QLabel(tr("备注"));
//设置控件风格,由形状和阴影配合设定
OtherLabel->setFrameStyle(QFrame::Panel|QFrame::Sunken);
/*
void addWidget
{
Qwidget* widget, //需要插入的控件对象
int fromRow, //插入的行
int fromColumn, //插入的列
int rowSpan, //表示占用的行数
int columnSpan, //表示占用的列数
Qt::Alignment alignment=0; //描述各个控件的对齐方式
}
*/
/*
void addLayout
{
QLayout* layout, //需要插入的子布局对象
int Row, //插入的起始行
int Column, //插入的起始列
int rowSpan, //表示占用的行数
int columnSpan, //表示占用的列数
Qt::Alignment alignment=0; //指定对齐方式
}
*/
leftLayout=new QGridLayout();
leftLayout->addWidget(UserNameLabel,0,0);//用户名
leftLayout->addWidget(UserNameLineEdit,0,1);
leftLayout->addWidget(NameLabel,1,0); //姓名
leftLayout->addWidget(NameLineEdit,1,1);
leftLayout->addWidget(SexLabel,2,0); //姓别
leftLayout->addWidget(SexComboBox,2,1);
leftLayout->addWidget(DepartmentLabel,3,0); //部门
leftLayout->addWidget(DepartmentTextEdit,3,1);
leftLayout->addWidget(AgeLabel,4,0); //年龄
leftLayout->addWidget(AgeLineEdit,4,1);
leftLayout->addWidget(OtherLabel,5,0,1,2); //其他
//设置第一列占用的比例1
leftLayout->setColumnStretch(0,1);
//设置第二列占用的比例3
leftLayout->setColumnStretch(1,3);
/***********右侧*************/
HeadLabel=new QLabel(tr("头像"));
HeadInconLabel=new QLabel;
QPixmap icon("C://312.png");
HeadInconLabel->setPixmap(icon);
HeadInconLabel->resize(icon.width(),icon.height());
UpdateHeadBtn=new QPushButton(tr("更新"));
TopRightLayout=new QHBoxLayout();
TopRightLayout->setSpacing(20);
TopRightLayout->addWidget(HeadLabel);
TopRightLayout->addWidget(HeadInconLabel);
TopRightLayout->addWidget(UpdateHeadBtn);
IntroductionLabel=new QLabel(tr("个人说明:")); //右下角部分
IntroductionTextEdit=new QTextEdit;
RightLayout=new QVBoxLayout();
RightLayout->setMargin(10);
RightLayout->addLayout(TopRightLayout);
RightLayout->addWidget(IntroductionLabel);
RightLayout->addWidget(IntroductionTextEdit);
/******底部*******/
OkBtn=new QPushButton("Confirm");
CancelBtn=new QPushButton("Cancel");
BottomLayout=new QHBoxLayout();
//在两个按钮之前插入一个占位符,使两个按钮向右对齐
BottomLayout->addStretch();
BottomLayout->addWidget(OkBtn);
BottomLayout->addWidget(CancelBtn);
/****************/
QGridLayout* mainLayout=new QGridLayout(this);
//this->setLayout(mainLayout);
mainLayout->setMargin(15);//设定对话框的边距(边缘空白大小)
mainLayout->setSpacing(10);
mainLayout->addLayout(leftLayout,0,0);
mainLayout->addLayout(RightLayout,0,1);
mainLayout->addLayout(BottomLayout,1,0,1,2);
mainLayout->setSizeConstraint(QLayout::SetFixedSize);
}
MyDialog::~MyDialog()
{
delete ui;
}