首先是
1.新建一个桌面的应用开发程序
2. 在main函数里面 添加各种所需要的头文件
3.
QApplication:
QApplication 类管理图形用户界面应用程序的控制流和主要设置。 可以说 QApplication是Qt的整个后台管理的命脉
*QLabel:*
标签功能
QLineEdit:
行输入,作用进行输入,有最主要输入类型的控制,此外就是输入格式,即过滤一些东西
QFormLayout:
QRdioButton
QPushButton:
QSpacerItem
4:`
代码如下
#include "testlayout.h"
#include<QApplication>
#include<QLabel>
#include<QLineEdit>
#include<QFormLayout>//一般用于表单
#include<QRadioButton>
#include<QPushButton>
#include<QSpacerItem>
//犯错 QFormLayput 哪里 用来(&W)导致后面显示不了 男女的按钮
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
TestLayout w;
//这里设置用&号的原因是&有特殊作用:它会转义后面跟的字符,被用来定义快捷键
QLabel *labelname=new QLabel("姓名:(&N)");
QLabel *labelAge=new QLabel("年龄:(&A)");
QLabel *labelEmail=new QLabel("邮箱:(&E)");
QLabel *labelNum=new QLabel("门牌号码:");
//设置 几个输入框
QLineEdit *QLineEditname=new QLineEdit;
QLineEdit *QLineEditAge=new QLineEdit;
QLineEdit *QLineEditEmail=new QLineEdit;
QLineEdit *QLineEditNum=new QLineEdit;
//设置伙伴关系
labelname->setBuddy(QLineEditname);
labelAge->setBuddy(QLineEditAge);
labelEmail->setBuddy(QLineEditEmail);
//注意:在这里 如果是 QFormLayout *headerLayout=new QFormLayout(&w); 后面就不会 显示
//出QformLayput之外的内容 即 男女标签 因为我在这里犯过错误
//常用于表单布局
//结构为 把标签以及相应的输入框结合起来 方便后面布局
QFormLayout *headerLayout=new QFormLayout;
headerLayout->addRow(labelname,QLineEditname);
headerLayout->addRow(labelAge,QLineEditAge);
headerLayout->addRow(labelEmail,QLineEditEmail);
headerLayout->addRow(labelNum,QLineEditNum);
QLabel *sexlabel=new QLabel("性别:");
QRadioButton *mbtn=new QRadioButton;
QRadioButton *wbtn=new QRadioButton;
mbtn->setText("男");
wbtn->setText("女");
//设置一个水平布局管理器
QHBoxLayout *sexLayout=new QHBoxLayout;
sexLayout->addWidget(sexlabel);
sexLayout->addWidget(mbtn);
sexLayout->addWidget(wbtn);
//设置一个垂直的布局管理器
QVBoxLayout *mainLayout=new QVBoxLayout(&w);
QSpacerItem *spacer =new QSpacerItem(30,30);
QPushButton *okbtn=new QPushButton("确定");
//QPushButton *nobtn=new QPushButton("取消");
mainLayout->addLayout(headerLayout);//添加布局
mainLayout->addLayout(sexLayout);
mainLayout->addItem(spacer);//添加空隙
mainLayout->addWidget(okbtn);//添加部件
mainLayout->setMargin(10); //与窗体的间隙
mainLayout->setSpacing(10); //与控件间的间隙
// mainLayout->addWidget(nobtn);
w.setLayout(mainLayout);
w.show();
//layput 表示布局 widget 表示部件;
return a.exec();
}
//强化了对 布局layout的理解 以及对各种控件的应用
效果图如下