Qt之 Layout的强化训练

目的是做出这样的界面:

首先是

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的理解 以及对各种控件的应用

效果图如下
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值