QT入门Layouts之Vertical Layout、Horizontal Layout、QGridLayout

这篇具有很好参考价值的文章主要介绍了QT入门Layouts之Vertical Layout、Horizontal Layout、QGridLayout。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、界面布局效果

1、界面位置介绍

2、属性功能介绍

 二、代码创建布局效果

 三、QGridLayout介绍


此文为作者原创,转载请标明出处!

一、界面布局效果

1、界面位置介绍

qt horizontallayout,QT控件入门,ui

2、属性功能介绍

先以Horizontal Layout来举例说明下:先拖个Horizontal Layout在界面上,再拖三个pushButton放到Horizontal Layout里,然后就看到如下布局效果:

qt horizontallayout,QT控件入门,ui

基本常见的布局属性:

ui->horizontalLayout->setSpacing(1);//设置控件之间的距离
ui->horizontalLayout->setContentsMargins(10,1,1,1);//设置上下左右的间距
ui->horizontalLayout->setStretch(0,2);//布局中序号为0,占2
ui->horizontalLayout->setStretch(1,2);//布局中序号为1,占2
ui->horizontalLayout->setStretch(2,6);//布局中序号为2,占6

 二、代码创建布局效果

还是拖个widget在界面上,然后开始写代码:

构造函数中添加:

QHBoxLayout* hLayout = new QHBoxLayout();//水平布局

QPushButton* Btn1 = new QPushButton(u8"按钮1");
QPushButton* Btn2 = new QPushButton(u8"按钮2");
QPushButton* Btn3 = new QPushButton(u8"按钮3");
QPushButton* Btn4 = new QPushButton(u8"按钮4");

hLayout->addWidget(Btn1);
hLayout->addWidget(Btn2);
hLayout->addWidget(Btn3);
hLayout->addWidget(Btn4);

ui->widget->setLayout(hLayout);

效果如下:

qt horizontallayout,QT控件入门,ui

 增加按钮之间的距离:

qt horizontallayout,QT控件入门,ui

qt horizontallayout,QT控件入门,ui

位置变化:

qt horizontallayout,QT控件入门,ui

qt horizontallayout,QT控件入门,ui

 三、QGridLayout介绍

 类似于表格结构效果填充:

qt horizontallayout,QT控件入门,ui

 代码测试:

    QGridLayout* gLayout = new QGridLayout(this);//栅格布局

    QPushButton* Btn1 = new QPushButton(u8"按钮1");
    //该函数的作用是设置控件大小随布局变化而变化且会填满布局
    Btn1->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
    QPushButton* Btn2 = new QPushButton(u8"按钮2");
    Btn2->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
    QPushButton* Btn3 = new QPushButton(u8"按钮3");
    Btn3->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
    QPushButton* Btn4 = new QPushButton(u8"按钮4");
    Btn4->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);

    gLayout->setRowStretch(0,1);   //第0行,比例为1
    gLayout->setRowStretch(1,1);   //第1行,比例为1
    gLayout->setRowStretch(2,1);   //第2行,比例为1
    gLayout->setRowStretch(3,1);  //第3行,比例为1

    //布局排布效果
    gLayout->addWidget(Btn1,1,0,1,1);
    gLayout->addWidget(Btn2,2,0,1,1);
    gLayout->addWidget(Btn3,2,1,1,1);
    gLayout->addWidget(Btn4,3,0,3,1);

    ui->widget->setLayout(gLayout);

 最后效果:

qt horizontallayout,QT控件入门,ui

推荐博客:精灵球Plus介绍_清风徐来Groot的博客-CSDN博客

 百度云盘:链接:https://pan.baidu.com/s/11b634VvKMIsGdahyBLpZ3Q   提取码:6666 文章来源地址https://www.toymoban.com/news/detail-536023.html

到了这里,关于QT入门Layouts之Vertical Layout、Horizontal Layout、QGridLayout的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Qt6教程之二(1) 布局 Layouts

    若你的电脑还未安装Qt,那么请转至上篇文章 Qt-6下载安装教程 按照指导进行操作。 本篇所讲的内容为Qt布局,为了节省时间,所用项目也是使用上篇的hello world 。 那么什么是布局呢? 简单来说,布局就是有效组织屏幕上显示的各类资源的模板,如按钮、文本框、图片、视

    2024年02月08日
    浏览(34)
  • QT 正确删除Layout

    前言:QT中以代码的方式设置布局的函数是 *void QWidget::setLayout(QLayout *layout)*但是没有提供直接删除布局的函数。在删除布局时应该注意内存泄漏的问题。下面的方法仅供参考。 参考文档takeat函数 以下是主要工程代码 widget.cpp widget.h mypushbutton.cpp

    2024年02月13日
    浏览(55)
  • 【CocosCreator入门】CocosCreator组件 | Layout(布局)组件

            Cocos Creator 是一款流行的游戏开发引擎,具有丰富的组件和工具,其中的Layout组件是一种用于实现节点自适应布局的重要组件。它可以根据不同的布局方式,自动调整子节点的位置和大小,从而实现节点的自适应布局。 目录 一、组件介绍 二、组件属性 三、布局类

    2023年04月22日
    浏览(49)
  • Vertical Calculation

    小学五年级竖式计算推导题 Plane Geometry (Junior High School)-CSDN博客 Rectangular Area-CSDN博客

    2024年01月18日
    浏览(88)
  • 踩坑_vertical-align

    问题: 今天在做一个需求时遇到了如下问题: 代码 渲染 父元素(div)没有设置padding,那么子元素(del)上方的间距是哪里来的呢? 这一切都和 vertical-align 属性有关~ vertical-align属性 vertical-align属性用于指定 行内元素 、 行内块元素 以及 表格单元格 (table-cell)的垂直对齐方式。

    2024年02月16日
    浏览(35)
  • HPA (Horizontal Pod Autoscaler) In K8s

    没准正在建设中哈哈哈 作为一位城市观察者和设计师,我想借助Kubernetes的HPA机制思想来描述城市红绿灯自动调节的场景。 在这个故事中,我们的城市面临着日益增长的交通流量和挤塞问题。为了应对这一挑战,城市决定引入智能化红绿灯系统,以更好地管理交通流量和提高

    2024年02月07日
    浏览(41)
  • CSS中的vertical-align属性

    This property affects the vertical positioning inside a line box of the boxes generated by an inline-levelelement. 官方文档的翻译:vertical-align会影响 行内块级元素 在一个 行盒 中 垂直方向 的位置 思考:一个div没有设置高度的时候,会不会有高度? 没有内容,没有高度 有内容,内容撑起来高度 但是

    2024年02月11日
    浏览(43)
  • vertical-align不生效及解决办法

    vertical-align  属性通常用于设置行内元素(如文本)在父元素中的垂直对齐方式。如果它不起作用,可能是因为: 没有给父元素设置高度和行高。 元素不是行内元素,而是块级元素。 样式被其他样式覆盖。 浏览器兼容性问题。 您需要确保父元素有高度和行高,并且将子元素设

    2024年02月15日
    浏览(41)
  • Velocity field in two vertical density layers(left=3200,right=3300).

               

    2024年02月14日
    浏览(59)
  • #vue3# el-table-horizontal-scroll 让 el-table 在底部显示横向滚动条

    一、需求: 当 el-table 的宽度超出浏览器宽度时,尽管 el_table 底部会出现滚动条,但使用起来不太便捷,因为每次需要先滚动到底部才能使用 el-table 的滚动体,这显得相当繁琐。 为了提升体验,希望在 el-table 的 宽度超出屏幕宽度时,即使没有滚动到底部,也能够在可视范围

    2024年01月18日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包