• 【Qt之布局】QVBoxLayout、QHBoxLayout、QGridLayout、QFormLayout介绍及使用


    在Qt中,布局管理器(Layout)用于管理窗口中的控件的位置和大小,以适应不同大小的窗口。
    常用的布局管理器包括QVBoxLayoutQHBoxLayoutQGridLayoutQFormLayout
    先放张布局UI:
    在这里插入图片描述

    1. QVBoxLayout(垂直布局管理器):

    • 描述:QVBoxLayout是一个垂直方向的布局管理器。它按照从上到下的顺序排列控件。
    • 使用:
      QVBoxLayout* layout = new QVBoxLayout;
      layout->addWidget(widget1);
      layout->addWidget(widget2);
      layout->addWidget(widget3);
      setLayout(layout);
      
      • 1
      • 2
      • 3
      • 4
      • 5

    2. QHBoxLayout(水平布局管理器):

    • 描述:QHBoxLayout是一个水平方向的布局管理器。它按照从左到右的顺序排列控件。
    • 使用:
      QHBoxLayout* layout = new QHBoxLayout;
      layout->addWidget(widget1);
      layout->addWidget(widget2);
      layout->addWidget(widget3);
      setLayout(layout);
      
      • 1
      • 2
      • 3
      • 4
      • 5

    3. QGridLayout(网格布局管理器):

    • 描述:QGridLayout是一个网格的布局管理器。它将控件按照行和列的方式排列。
    • 使用:
      QGridLayout* layout = new QGridLayout;
      layout->addWidget(widget1, 0, 0);  // 添加到第0行第0列
      layout->addWidget(widget2, 0, 1);  // 添加到第0行第1列
      layout->addWidget(widget3, 1, 0, 1, 2);  // 添加到第1行第0列,并占据1行2列
      setLayout(layout);
      
      • 1
      • 2
      • 3
      • 4
      • 5

    4. QFormLayout(表单布局管理器):

    • 描述:QFormLayout是一种专门用于表单的布局管理器。它将标签和输入控件配对排列。
    • 使用:
      QFormLayout* layout = new QFormLayout;
      layout->addRow("Label 1", widget1);
      layout->addRow("Label 2", widget2);
      layout->addRow("Label 3", widget3);
      setLayout(layout);
      
      • 1
      • 2
      • 3
      • 4
      • 5

    这些布局管理器可以通过addWidget()addLayout()addSpacing()等方法来添加控件、子布局或间隔。
    它们还提供了一些其他的方法来设置布局的对齐方式、边距等属性,以满足不同的需求。

    布局目的

    使用布局管理器可以简化窗口的布局和调整过程,同时实现窗口的自适应和响应式布局,提高了代码的可维护性和可扩展性。
    使用布局管理器还可以更好地适应不同窗口大小和分辨率,提高用户体验。

    • 在使用QVBoxLayout和QHBoxLayout时,可以通过设置拉伸系数来控制部件的拉伸比例,使得不同部件在窗口大小变化时能够自适应调整大小。
    • QGridLayout可以创建复杂的网格布局,可以通过设置行和列的拉伸系数来控制网格单元格的大小,以及通过设置间距来控制部件之间的距离。
    • QFormLayout可以方便地创建表单布局,可以通过设置标签和输入框的对齐方式来美化布局外观。
    • 在使用布局管理器时,可以通过设置布局的边距来控制部件与窗口边界的距离,以及通过设置间距来控制不同部件之间的距离,从而美化布局外观。
    • 在使用布局管理器时,可以通过设置布局的伸缩性来控制布局是否可以随着窗口大小的变化而自动调整大小。
  • 相关阅读:
    .NET 反向代理 YARP 跨域请求 CORS
    使用人工智能聊天机器人时要注意这些!(配提问技巧)
    使用第三方账号认证(一):钉钉扫码登录
    软考 系统架构设计师系列知识点之设计模式(4)
    学成在线第四天
    测开(自动化测试selenium(WebDriver API))
    节省草稿纸的方法
    Leetcode链表问题汇总
    Qt的ui文件不能简单复制
    attempted to return null from a method with a primitive return type (int).
  • 原文地址:https://blog.csdn.net/MrHHHHHH/article/details/133915208