QT基础:QFormLayout 列表布局简单演示

17 篇文章 0 订阅

QFormLayout 是一个列表布局器,每一行可以添加两个元素,且一一对应;

列表布局器也可以进行嵌套,例如在里面可以嵌套一个平行布局

演示比较简单,合适初学者食用

打开QT,创建一个 widget 项目

 在 main.cpp里面,将窗口大小改为 300x300 , 当然这一步不做也可以

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.resize(300,300);  // 修改窗口大小为 300x300
    w.show();
    return a.exec();
}

下面代码是在 widget.cpp 中

#include "widget.h"
#include "ui_widget.h"
#include <QFormLayout>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    // 创建列表布局
    QFormLayout * flay = new QFormLayout(this);
    // 创建编辑框
    QLineEdit * name  = new QLineEdit();
    QLineEdit * age = new QLineEdit();
    QLineEdit * email  = new QLineEdit();
    // 将编辑框添加到列表布局中  addRow(标题,控件名)
    flay->addRow("&Name:",name);    // 可以看到这里加了一个  & 符号, 表示创建快捷键
    flay->addRow("&Age:",age);      // 创建一个快捷键,&A 就表示 按下 ALT+A 就可以将光标移动过来
    //  插入行(行序号,标题,控件名)
    flay->insertRow(1,"&Email:",email);
    // 创建标签,修改字体颜色
    QLabel *info = new QLabel("input");
    info->setStyleSheet("color:red");   // 将字体颜色写入样式表
    // 插入到第 0 行
    flay->insertRow(0,"",info);


    // 创建按钮
    QPushButton *save = new QPushButton("save");
    QPushButton *clear = new QPushButton("clear");
    // 新建一个平行布局器,将按钮添加到平行布局器中
    QHBoxLayout *hblay = new QHBoxLayout();
    hblay->addWidget(save);
    hblay->addWidget(clear);
    // 将平行布局加入到列表布局中,实现嵌套效果
    flay->addRow(hblay);
}

Widget::~Widget()
{
    delete ui;
}

需要特别注意的是 & 符号,在“&name”中,实际上 &符号不会先窗口上面显示出来,这里只是表示将&符号后面的一个字母创建快捷键,按下 alt + &后面的字母 触发

下图是演示效果 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值