/*contact.h*/
#ifndef CONTACT_H
#define CONTACT_H
#include<QLabel>
#include<QGridLayout>
#include<QLineEdit>
#include<QCheckBox>
#include <QWidget>
class Contact : public QWidget
{
Q_OBJECT
public:
explicit Contact(QWidget *parent = nullptr);
signals:
public slots:
private:
QLabel *EmailLabel;
QLineEdit *EmailLineEdit;
QLabel *AddrLabel;
QLineEdit *AddrLineEdit;
QLabel *CodeLabel;
QLineEdit *CodeLineEdit;
QLabel *MoviTelLabel;
QLineEdit *MoviTelLineEdit;
QCheckBox *MoviTelCheckBook;
QLabel *ProTelLabel;
QLineEdit *ProTelLineEdit;
QGridLayout *mainLayout;
};
#endif // CONTACT_H
#ifndef CONTENT_H
#define CONTENT_H
#include<QStackedWidget>
#include<QPushButton>
#include <QDialog>
#include "baseinfo.h"
#include "contact.h"
#include "detail.h"
QT_BEGIN_NAMESPACE
namespace Ui { class Content; }
QT_END_NAMESPACE
class Content : public QFrame
{
Q_OBJECT
public:
Content(QWidget *parent = nullptr);
~Content();
QStackedWidget *stack;
QPushButton *AmendBtn;
QPushButton *CloseBtn;
BaseInfo *baseInfo;
Contact *contact;
Detail *detail;
private:
Ui::Content *ui;
};
#endif // CONTENT_H
#ifndef DETAIL_H
#define DETAIL_H
#include<QLabel>
#include<QComboBox>
#include<QLineEdit>
#include<QTextEdit>
#include<QGridLayout>
#include <QWidget>
class Detail : public QWidget
{
Q_OBJECT
public:
explicit Detail(QWidget *parent = nullptr);
signals:
public slots:
private:
QLabel *NationalLabel;
QComboBox *NationalComboBox;
QLabel *ProvinceLabel;
QComboBox *ProvinceComboBox;
QLabel *CityLabel;
QLineEdit *CityLineEdit;
QLabel *IntroductLabel;
QTextEdit *IntroductTextEdit;
QGridLayout *mainLayout;
};
#endif // DETAIL_H
#ifndef BASEINFO_H
#define BASEINFO_H
#include<QLabel>
#include<QLineEdit>
#include<QComboBox>
#include<QTextEdit>
#include<QGridLayout>
#include<QPushButton>
#include <QWidget>
class BaseInfo : public QWidget
{
Q_OBJECT
public:
explicit BaseInfo(QWidget *parent = nullptr);
signals:
public slots:
private:
//Left
QLabel *UserNameLabel;
QLabel *NameLabel;
QLabel *SexLabel;
QLabel *DepartmentLabel;
QLabel *AgeLabel;
QLabel *OtherLabel;
QLineEdit *UserNameLineEdit;
QLineEdit *NameLineEdit;
QComboBox *SexComboBox;
QTextEdit *DepartmentTextEdit;
QLineEdit *AgeLineEdit;
QGridLayout *LeftLayout;
//right
QLabel *HeadLabel;
QLabel *HeadIconLabel;
QPushButton *UpdateHeadBtn;
QHBoxLayout *TopRightLyout;
QLabel *IntroductionLabel;
QTextEdit *IntroductionTextEdit;
QVBoxLayout *RightLayout;
};
#endif // BASEINFO_H
QPixmap icon("/home/linux/QT_set/Example/312.png");
HeadIconLabel->setPixmap(icon);
HeadIconLabel->resize(icon.width(),icon.height());
UpdateHeadBtn = new QPushButton(tr("Update: "));
TopRightLyout= new QHBoxLayout();
TopRightLyout->setSpacing(20);
TopRightLyout->addWidget(HeadLabel);
TopRightLyout->addWidget(HeadIconLabel);
TopRightLyout->addWidget(UpdateHeadBtn);
IntroductionLabel = new QLabel(tr("Personal description: "));
IntroductionTextEdit = new QTextEdit;
RightLayout=new QVBoxLayout();
RightLayout->setMargin(10);
RightLayout->addLayout(TopRightLyout);
RightLayout->addWidget(IntroductionLabel);
RightLayout->addWidget(IntroductionTextEdit);
/************************************************/
QGridLayout *mainLayout = new QGridLayout(this);
mainLayout->setMargin(15);
mainLayout->setSpacing(10);
mainLayout->addLayout(LeftLayout,0,0);
mainLayout->addLayout(RightLayout,0,1);
mainLayout->setSizeConstraint(QLayout::SetFixedSize);
}
#include "contact.h"
Contact::Contact(QWidget *parent) : QWidget(parent)
{
EmailLabel=new QLabel(tr("电子邮件: "));
EmailLineEdit=new QLineEdit;
AddrLabel = new QLabel(tr("联系地址: "));
AddrLineEdit = new QLineEdit;
CodeLabel=new QLabel(tr("邮政编码: "));
CodeLineEdit= new QLineEdit;
MoviTelLabel=new QLabel(tr("移动电话: "));
MoviTelLineEdit=new QLineEdit;
MoviTelCheckBook=new QCheckBox(tr("接受留言: "));
ProTelLabel=new QLabel(tr("办公电话: "));
ProTelLineEdit=new QLineEdit;
mainLayout=new QGridLayout(this);
mainLayout->setMargin(15);
mainLayout->setSpacing(10);
mainLayout->addWidget(EmailLabel,0,0);
mainLayout->addWidget(EmailLineEdit,0,1);
mainLayout->addWidget(AddrLabel,1,0);
mainLayout->addWidget(AddrLineEdit,1,1);
mainLayout->addWidget(CodeLabel,2,0);
mainLayout->addWidget(CodeLineEdit,2,1);
mainLayout->addWidget(MoviTelLabel,3,0);
mainLayout->addWidget(MoviTelLineEdit,3,1);
mainLayout->addWidget(MoviTelCheckBook,3,2);
mainLayout->addWidget(ProTelLabel,4,0);
mainLayout->addWidget(ProTelLineEdit,4,1);
mainLayout->setSizeConstraint(QLayout::SetFixedSize);
}
#include "content.h"
#include "ui_content.h"
Content::Content(QWidget *parent) : QFrame(parent)
, ui(new Ui::Content)
{
stack=new QStackedWidget(this);
stack->setFrameStyle(QFrame::Panel|QFrame::Raised);
/*3个页面*/
baseInfo = new BaseInfo();
contact = new Contact();
detail = new Detail();
stack->addWidget(baseInfo);
stack->addWidget(contact);
stack->addWidget(detail);
/*2个按钮*/
AmendBtn =new QPushButton(tr("amend"));
CloseBtn =new QPushButton(tr("close"));
QHBoxLayout *BtnLayout =new QHBoxLayout;
BtnLayout->addStretch(1);
BtnLayout->addWidget(AmendBtn);
BtnLayout->addWidget(CloseBtn);
/*整体布局*/
QVBoxLayout *RightLayout =new QVBoxLayout(this);
RightLayout->setMargin(10);
RightLayout->setSpacing(6);
RightLayout->addWidget(stack);
RightLayout->addLayout(BtnLayout);
}
Content::~Content()
{
delete ui;
}
#include "detail.h"
Detail::Detail(QWidget *parent) : QWidget(parent)
{
NationalLabel=new QLabel(tr("country/address: "));
NationalComboBox=new QComboBox;
NationalComboBox->insertItem(0,tr("China"));
NationalComboBox->insertItem(1,tr("USA"));
NationalComboBox->insertItem(2,tr("Britain"));
ProvinceLabel=new QLabel(tr("Peovinces: "));
ProvinceComboBox=new QComboBox;
ProvinceComboBox->insertItem(0,tr("江苏省"));
ProvinceComboBox->insertItem(1,tr("山东省"));
ProvinceComboBox->insertItem(2,tr("浙江省"));
CityLabel=new QLabel(tr("city: "));
CityLineEdit=new QLineEdit;
IntroductLabel=new QLabel(tr("Personal elucidation: "));
IntroductTextEdit=new QTextEdit;
mainLayout=new QGridLayout(this);
mainLayout->setMargin(15);
mainLayout->setSpacing(10);
mainLayout->addWidget(NationalLabel,0,0);
mainLayout->addWidget(NationalComboBox,0,1);
mainLayout->addWidget(ProvinceLabel,1,0);
mainLayout->addWidget(ProvinceComboBox,1,1);
mainLayout->addWidget(CityLabel,2,0);
mainLayout->addWidget(CityLineEdit,2,1);
mainLayout->addWidget(IntroductLabel,3,0);
mainLayout->addWidget(IntroductTextEdit,3,1);
}
#include "content.h"
#include<QTextCodec>
#include<QSplitter>
#include<QListWidget>
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QFont font("AR PL KaitiM GB",12);
a.setFont(font);
QSplitter *splitterMain=new QSplitter(Qt::Horizontal,0);
splitterMain->setOpaqueResize(true);
QListWidget *list=new QListWidget(splitterMain);
list->insertItem(0,QObject::tr("基本信息"));
list->insertItem(1,QObject::tr("联系方式"));
list->insertItem(2,QObject::tr("详细资料"));
Content *content=new Content(splitterMain);
QObject::connect(list,SIGNAL(currentRowChanged(int)),content->stack,
SLOT(setCurrentIndex(int)));
splitterMain->setWindowTitle(QObject::tr("修改用户资料"));
splitterMain->setMinimumSize(splitterMain->minimumSize());
splitterMain->setMaximumSize(splitterMain->maximumSize());
splitterMain->show();
return a.exec();
}