一、基类选择QDialog,取消“创建界面”复选框的选中状态。 二、dialog.h中的代码
#ifndef DIALOG_H #define DIALOG_H #include <QDialog> #include<QLabel> #include<QLineEdit> #include<QComboBox> #include<QTextEdit> #include<QGridLayout> class Dialog : public QDialog { Q_OBJECT public: Dialog(QWidget *parent = nullptr); ~Dialog(); 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; //底部 QPushButton *OkBtn; QPushButton *CancelBtn; QHBoxLayout *ButtomLayout; }; #endif // DIALOG_H三、dialog.cpp中的代码
#include "dialog.h" #include<QLabel> #include<QLineEdit> #include<QComboBox> #include<QPushButton> #include<QFrame> #include<QGridLayout> #include<QPixmap> #include<QHBoxLayout> Dialog::Dialog(QWidget *parent) : QDialog(parent) { 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("女")); 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); /*******右侧*******/ 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); 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(tr("确定")); CancelBtn = new QPushButton(tr("取消")); ButtomLayout = new QHBoxLayout(); ButtomLayout->addStretch(); ButtomLayout->addWidget(OkBtn); ButtomLayout->addWidget(CancelBtn); /*****************/ QGridLayout *mainLayout = new QGridLayout(this); mainLayout->setMargin(15); mainLayout->setSpacing(10); mainLayout->addLayout(LeftLayout,0,0); mainLayout->addLayout(RightLayout,0,1); mainLayout->addLayout(ButtomLayout,1,0,1,2); mainLayout->setSizeConstraint(QLayout::SetFixedSize); } Dialog::~Dialog() { }四、运行效果图