空间间隔组(Spacers)-Qt-思维导图-学习笔记

空间间隔组(Spacers)

在这里插入图片描述

空间间隔组(Spacers)

(1)Horizontal Spacer:水平间隔

(2)Vertical Spacer:垂直间隔

QSpacerItem

控件简介

  • 继承关系:QSpacerItem 继承自 QLayoutItem

  • 空间提供:QSpacerItem 类在布局中提供空白或空间间隔

  • 布局中的应用:主要用于布局中,以创建水平或垂直的空白区域

    • 水平间隔:提供 Horizontal Spacer,用于在水平方向上创建间隔

    • 垂直间隔:提供 Vertical Spacer,用于在垂直方向上创建间隔

用法示例

  • 使用 4 个按钮,在垂直布局添加垂直间隔与
    按钮 1,在水平布局添加按钮 2~4 与水平间隔

  • 新建例程中不要勾选“Generate form”,默认继承 QMainWindow 类即可

  • mainwindow.h

    • 1 #ifndef MAINWINDOW_H
      2 #define MAINWINDOW_H
      3
      4 #include
      5 #include
      6 #include
      7 #include
      8
      9 class MainWindow : public QMainWindow
      10 {
      11 Q_OBJECT
      12
      13 public:
      14 MainWindow(QWidget parent = nullptr);
      15 ~MainWindow();
      16
      17 private:
      18 /
      按钮对象数组 */
      19 QPushButton bt[4];
      20 /
      垂直间隔 */
      21 QSpacerItem vSpacer;
      22 /
      水平间隔 */
      23 QSpacerItem hSpacer;
      24 /
      声明一个 widget 用来存放布局的内容 */
      25 QWidget widget;
      26 /
      主布局对象 */
      27 QHBoxLayout mainLayout;
      28 /
      垂直布局对象 */
      29 QVBoxLayout vBoxLayout;
      30 /
      水平布局对象 */
      31 QHBoxLayout *hBoxLayout;
      32
      33 };
      34 #endif // MAINWINDOW_H
  • mainwindow.cpp

    • 1 #include “mainwindow.h”
      2
      3 MainWindow::MainWindow(QWidget parent)
      4 : QMainWindow(parent)
      5{
      6 /
      设置主窗体显示位置与大小 /
      7 this->setGeometry(0, 0, 800, 480);
      8
      9 widget = new QWidget(this);
      10 /
      居中 widget /
      11 this->setCentralWidget(widget);
      12
      13 /
      实例化对象 /
      14 vSpacer = new QSpacerItem(10, 10,
      15 QSizePolicy::Minimum,
      16 QSizePolicy::Expanding
      17 );
      18 hSpacer = new QSpacerItem(10, 10,
      19 QSizePolicy::Expanding,
      20 QSizePolicy::Minimum
      21 );
      22
      23 vBoxLayout = new QVBoxLayout();
      24 hBoxLayout = new QHBoxLayout();
      25 mainLayout = new QHBoxLayout();
      26
      27 /
      在 vBoxLayout 添加垂直间隔 /
      28 vBoxLayout->addSpacerItem(vSpacer);
      29
      30 QList list;
      31 /
      将字符串值插入 list /
      32 list<<“按钮 1”<<“按钮 2”<<“按钮 3”<<“按钮 4”;
      33 /
      用一个循环实例化 4 个按钮 /
      34 for(int i = 0; i < 4 ; i++){
      35 bt[i] = new QPushButton();
      36 bt[i]->setText(list[i]);
      37 if (i == 0){
      38 /
      按钮 1,设置为 100100 /
      39 bt[i]->setFixedSize(100, 100);
      40 /
      在 vBoxLayout 添加按钮 1 /
      41 vBoxLayout->addWidget(bt[i]);
      42 } else {
      43 /
      按钮 2~4,设置为 60
      60 /
      44 bt[i]->setFixedSize(60, 60);
      45 /
      在 hBoxLayout 添加按钮 2~4 /
      46 hBoxLayout->addWidget(bt[i]);
      47 }
      48 }
      49 /
      在 hBoxLayout 添加水平间隔 /
      50 hBoxLayout->addSpacerItem(hSpacer);
      51
      52 /
      在主布局里添加垂直布局 /
      53 mainLayout->addLayout(vBoxLayout);
      54 /
      在主布局里添加水平布局 /
      55 mainLayout->addLayout(hBoxLayout);
      56
      57 /
      设置部件间距 /
      58 mainLayout->setSpacing(50);
      59 /
      将主布局设置为 widget 的布局 */
      60 widget->setLayout(mainLayout);
      61
      62 }
      63
      64 MainWindow::~MainWindow()
      65 {
      66 }
  • main.cpp

    • 由新建项目时生成,无改动

运行效果

  • 在垂直布局里添加了垂直空间间隔与按钮 1,在水平布局里添加了按钮 2~4 与水平空间间隔

  • 图解

  • 15
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木木不迷茫(˵¯͒¯͒˵)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值