layout.h
#ifndef LAYOUT_H #define LAYOUT_H #include <QtWidgets/QDialog> #include <QLabel> #include <QTextEdit> #include <QLineEdit> #include <QComboBox> #include <QHBoxLayout> #include <QVBoxLayout> #include <QGridLayout> #include <QPushButton> #include "ui_layout.h" class layout : public QDialog { Q_OBJECT public: layout(QWidget *parent = 0); ~layout(); private: Ui::layoutClass ui; QLabel *labelUser; QLabel *labelName; QLabel *labelSex; QLabel *labelDepartment; QLabel *labelAge; QLabel *labelOther; QLineEdit *lineUser; QLineEdit *lineName; QLineEdit *lineAge; QComboBox *boxSex; QTextEdit *textDescription; QTextEdit *textIntroduction; QLabel *labelHead; QLabel *labelIcon; QLabel *labelDescription; QPushButton *buttonOk; QPushButton *buttonUpdateicon; QPushButton *buttonCancel; QGridLayout *leftLayout; QHBoxLayout *toprightLayout; QVBoxLayout *rightLayout; QHBoxLayout *buttonLayout; private slots: void on_buttonUpdateicon_clicked(); }; #endif // LAYOUT_Hlayout.cpp
#include "layout.h" #include <QPixmap> #include <QMessageBox> layout::layout(QWidget *parent) : QDialog(parent) { ui.setupUi(this); labelUser = new QLabel(QStringLiteral("用户名:")); lineUser = new QLineEdit; labelName = new QLabel(QStringLiteral("姓名:")); lineName = new QLineEdit; labelSex = new QLabel(QStringLiteral("性别:")); boxSex = new QComboBox; boxSex->addItem(QStringLiteral("男")); boxSex->addItem(QStringLiteral("女")); labelDepartment = new QLabel(QStringLiteral("部门:")); textDescription = new QTextEdit; labelAge = new QLabel(QStringLiteral("年龄:")); lineAge = new QLineEdit; labelOther = new QLabel(QStringLiteral("备注:")); labelOther->setFrameStyle(QFrame::Panel | QFrame::Sunken); leftLayout = new QGridLayout; leftLayout->addWidget(labelUser,0, 0); leftLayout->addWidget(lineUser, 0, 1); leftLayout->addWidget(labelName, 1, 0); leftLayout->addWidget(lineName, 1, 1); leftLayout->addWidget(labelSex, 2, 0); leftLayout->addWidget(boxSex, 2, 1); leftLayout->addWidget(labelDepartment, 3, 0); leftLayout->addWidget(textDescription, 3, 1); leftLayout->addWidget(labelAge, 4, 0); leftLayout->addWidget(lineAge, 4, 1); leftLayout->addWidget(labelOther, 5, 0, 1, 2); leftLayout->setColumnStretch(0, 1); leftLayout->setColumnStretch(1, 3); labelHead = new QLabel(QStringLiteral("头像:")); labelIcon = new QLabel; QPixmap icon("hi.jpg"); labelIcon->setPixmap(icon); labelIcon->resize(icon.width(), icon.height()); buttonUpdateicon = new QPushButton(QStringLiteral("更新")); toprightLayout = new QHBoxLayout; toprightLayout->addWidget(labelHead); toprightLayout->addWidget(labelIcon); toprightLayout->addWidget(buttonUpdateicon); labelDescription = new QLabel(QStringLiteral("个人说明:")); textIntroduction = new QTextEdit; rightLayout = new QVBoxLayout; rightLayout->addLayout(toprightLayout); rightLayout->addWidget(labelDescription); rightLayout->addWidget(textIntroduction); buttonOk = new QPushButton(QStringLiteral("确定")); buttonCancel = new QPushButton(QStringLiteral("取消")); buttonLayout = new QHBoxLayout; buttonLayout->addStretch(); buttonLayout->addWidget(buttonOk); buttonLayout->addWidget(buttonCancel); QGridLayout *mainLayout = new QGridLayout(this); mainLayout->setMargin(15); mainLayout->setSpacing(10); mainLayout->addLayout(leftLayout, 0, 0); mainLayout->addLayout(rightLayout, 0, 1); mainLayout->addLayout(buttonLayout, 1, 0, 1, 2); mainLayout->setSizeConstraint(QLayout::SetFixedSize); connect(buttonOk, SIGNAL(clicked()), qApp, SLOT(quit())); connect(buttonCancel, SIGNAL(clicked()), qApp, SLOT(quit())); connect(buttonUpdateicon, SIGNAL(clicked()), this, SLOT(on_buttonUpdateicon_clicked())); } layout::~layout() { } void layout::on_buttonUpdateicon_clicked() { QMessageBox::information(this, QStringLiteral("嗨"), QStringLiteral("测试")); }