再度Qt 五(非原创)

来源:互联网 发布:淘宝上的经典搞笑好评 编辑:程序博客网 时间:2024/04/27 13:52

综合例子:修改用户资料

 

 

#ifndef CONTENT_H
#define CONTENT_H
#include "baseinfo.h"
#include "contact.h"
#include "detail.h"

#include <QFrame>
#include <QFrame>
#include <QStackedWidget>
#include <QPushButton>

 

class Content : public QFrame
{
    Q_OBJECT

    public:
        Content(QWidget *parent=0);

        QStackedWidget *stack;
        QPushButton *AmendBtn;
        QPushButton *CloseBtn;

        BaseInfo  *baseInfo;
        Contact *contact;
        Detail *detail;

public:
    Content();
};

#endif // CONTENT_H

 

 

#include "content.h"
#include <QHBoxLayout>

Content::Content(QWidget *parent)
    :QFrame(parent)
{
    stack =new QStackedWidget(this);
    stack->setFrameStyle(QFrame::Panel|QFrame::Raised);
    baseInfo =new BaseInfo();
    contact =new Contact();
    detail =new Detail();
    stack->addWidget(baseInfo);
    stack->addWidget(contact);
    stack->addWidget(detail);

    AmendBtn =new QPushButton(tr("修改"));
    CloseBtn =new QPushButton(tr("关闭"));
    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);

}

 

 

#ifndef BASEINFO_H
#define BASEINFO_H

#include <QWidget>
//添加的头文件
#include <QLabel>
#include <QLineEdit>
#include <QComboBox>
#include <QTextEdit>
#include <QGridLayout>
#include <QPushButton>


class BaseInfo : public QWidget
{
    Q_OBJECT

    public:
        BaseInfo(QWidget *parent=0);
    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 *HeadIconLabel;
        QPushButton *UpdateHeadBtn;
        QHBoxLayout *TopRightLayout;

        QLabel *IntroductionLabel;    //右下角部分
        QTextEdit *IntroductionTextEdit;

        QVBoxLayout *RightLayout;

};

#endif // BASEINFO_H

 

 

#include "baseinfo.h"

BaseInfo::BaseInfo(QWidget *parent)
    :QWidget(parent)
{
    /************** 左侧 ******************************/
        UserNameLabel =new QLabel(tr("用户名:"));
        UserNameLineEdit =new QLineEdit;

        NameLabel =new QLabel(tr("姓名:"));
        NameLineEdit =new QLineEdit;

        SexLabel =new QLabel(tr("性别:"));
        SexComboBox =new QComboBox;
        SexComboBox->addItem(tr("女"));
        SexComboBox->addItem(tr("男"));

        DepartmentLabel =new QLabel(tr("部门:"));
        DepartmentTextEdit =new QTextEdit;

        AgeLabel =new QLabel(tr("年龄:"));
        AgeLineEdit =new QLineEdit;

        OtherLabel =new QLabel(tr("备注:"));
        OtherLabel->setFrameStyle(QFrame::Panel|QFrame::Sunken);

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

        LeftLayout->setColumnStretch(0,1); //
        LeftLayout->setColumnStretch(1,3); //
    //    this->setLayout(LeftLayout);
    /************************************************/
    /*************** 右侧 ****************************/
        HeadLabel =new QLabel(tr("头像:"));//右上角部分
        HeadIconLabel =new QLabel;
        QPixmap  icon("312.png");//
        HeadIconLabel->setPixmap(icon);//
        HeadIconLabel->resize(icon.width(),icon.height());//
        UpdateHeadBtn =new QPushButton(tr("更新"));

        TopRightLayout =new QHBoxLayout();
        TopRightLayout->setSpacing(20);
        TopRightLayout->addWidget(HeadLabel);
        TopRightLayout->addWidget(HeadIconLabel);
        TopRightLayout->addWidget(UpdateHeadBtn);
    //    TopRightLayout->addStretch();

        IntroductionLabel =new QLabel(tr("个人说明:"));//右下角部分
        IntroductionTextEdit =new QTextEdit;

        RightLayout =new QVBoxLayout();
        RightLayout->setMargin(10);
        RightLayout->addLayout(TopRightLayout);
        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);
}


//BaseInfo::BaseInfo()
//{
//}

 

 

 

#ifndef CONTACT_H
#define CONTACT_H

#include <QWidget>
#include <QWidget>
#include <QLabel>
#include <QGridLayout>
#include <QLineEdit>
#include <QCheckBox>


class Contact : public QWidget
{
    Q_OBJECT

   public:
       Contact(QWidget *parent=0);

   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

 

 

 

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


}

 

 

 

#ifndef DETAIL_H
#define DETAIL_H


#include <QWidget>
#include <QLabel>
#include <QComboBox>
#include <QLineEdit>
#include <QTextEdit>
#include <QGridLayout>


class Detail : public QWidget
{
    Q_OBJECT

   public:
       Detail(QWidget *parent=0);

   private:
       QLabel *NationalLabel;
       QComboBox *NationalComboBox;
       QLabel *ProvinceLabel;
       QComboBox *ProvinceComboBox;
       QLabel *CityLabel;
       QLineEdit *CityLineEdit;
       QLabel *IntroductLabel;
       QTextEdit *IntroductTextEdit;

       QGridLayout *mainLayout;

};

#endif // DETAIL_H

 

 

 

 

#include "detail.h"

Detail::Detail(QWidget *parent)
    :QWidget(parent)
{
    NationalLabel =new QLabel(tr("国家/地址:"));
    NationalComboBox =new QComboBox;
    NationalComboBox->insertItem(0,tr("中国"));
    NationalComboBox->insertItem(1,tr("美国"));
    NationalComboBox->insertItem(2,tr("英国"));

    ProvinceLabel =new QLabel(tr("省份:"));
    ProvinceComboBox =new QComboBox;
    ProvinceComboBox->insertItem(0,tr("江苏省"));
    ProvinceComboBox->insertItem(1,tr("山东省"));
    ProvinceComboBox->insertItem(2,tr("浙江省"));

    CityLabel =new QLabel(tr("城市:"));
    CityLineEdit =new QLineEdit;

    IntroductLabel =new QLabel(tr("个人说明:"));
    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 <QApplication>
#include "content.h"
#include <QTextCodec>
#include <QSplitter>
#include <QListWidget>

int main(int argc,char *argv[])
{
    QApplication app(argc,argv);
    QFont font("AR PL KaitiM GB",12);
    app.setFont(font);
    QTextCodec::setCodecForTr(QTextCodec::codecForLocale());

    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 app.exec();
}

 

 

 

 

 

 

 

 

 

 

原创粉丝点击