Qt Quick - GridLayout 网格布局
创始人
2024-06-02 23:10:22
0

GridLayout 理论总结

  • 一、概述
  • 二、依赖属性
  • 三、例子
    • 1. 不含跨行的
    • 2. 带跨行列的
    • 3. 从右到左

一、概述

GridLayout 是最常用的布局器,也叫网格布局器,如果网格布局被调整大小,布局中的所有 Item 将被重新排列。它类似于基于widget的QGridLayout。GridLayout元素的所有可见子元素都将属于该布局。如果你想要一个只有一行或一列的布局,可以使用RowLayout或ColumnLayout。这些提供了更方便的API,并提高了可读性。

默认情况下, Item 将根据 flow 属性进行排列。flow属性的默认值是GridLayout.LeftToRight,就是从左到右排列。

如果指定了columns属性,它将被视为布局可以拥有的列数的最大限制,在自动定位包装回下一行的开始之前。columns属性只在flow为GridLayout.LeftToRight时使用。rows 属性的工作方式类似,但 Item 是自动垂直定位的。只有当flow为GridLayout.TopToBottom时,才会使用rows属性。

您可以通过设置布局来指定您想要 Item 占用的单元格。行和布局。列的属性。您还可以通过设置布局来指定行跨度或列跨度。rowSpan或Layout。columnSpan属性。

其实网格布局就 要指定多少行列,由此来计算出网格数,我们还可以设置这个网格之间的距离,网格外部的距离之类的,就是设置东西,布局就是能缩放大小,不布局就可以通过 x, y , anchor 来布局也可以,只是不会随着窗口变化

二、依赖属性

这些的依赖属性是指 在这个布局器 里面的元素可以写在里面的属性些。就是这些宽高 要注意,
这里有一个注意事项:不要在布局中绑定 Item 的x、y、width或height属性,因为这将与布局的目标冲突,也可能导致绑定循环。布局引擎使用 width 和 height 属性来存储根据 minimum/preferred/maximum 计算出的 Item 的当前大小,并且在每次布局 Item 时都会被重写。使用Layout.preferredWidth 和 Layout.preferredHeight, 或者 implicitWidth and implicitHeight 指定元素的首选尺寸。

  • Layout.row
  • Layout.column
  • Layout.rowSpan
  • Layout.columnSpan
  • Layout.minimumWidth
  • Layout.minimumHeight
  • Layout.preferredWidth
  • Layout.preferredHeight
  • Layout.maximumWidth
  • Layout.maximumHeight
  • Layout.fillWidth
  • Layout.fillHeight
  • Layout.alignment
  • Layout.margins
  • Layout.leftMargin
  • Layout.rightMargin
  • Layout.topMargin
  • Layout.bottomMargin

三、例子

1. 不含跨行的

效果
在这里插入图片描述
代码

import QtQuick 2.0
import QtQuick.Window 2.3
import QtQuick.Layouts 1.3
import QtQuick.Controls 2.5Window {id: rootvisible: truewidth: 319height: 570title: qsTr("Hello World")GridLayout{rows: 3columns: 3anchors.fill: parentButton{text: "1"Layout.column: 0Layout.row: 0Layout.alignment: Qt.AlignHCenter}Button{text: "2"Layout.column: 1Layout.row: 0Layout.alignment: Qt.AlignHCenter}Button{text: "3"Layout.column: 2Layout.row: 0Layout.alignment: Qt.AlignHCenter}Button{text: "4"Layout.column: 0Layout.row: 1Layout.alignment: Qt.AlignHCenter}Button{text: "5"Layout.column: 1Layout.row: 1Layout.alignment: Qt.AlignHCenter}Button{text: "6"Layout.column: 2Layout.row: 1Layout.alignment: Qt.AlignHCenter}Button{text: "7"Layout.column: 0Layout.row: 2Layout.alignment: Qt.AlignHCenter}Button{text: "8"Layout.column: 1Layout.row: 2Layout.alignment: Qt.AlignHCenter}Button{text: "9"Layout.column: 2Layout.row: 2Layout.alignment: Qt.AlignHCenter}}
}

2. 带跨行列的

效果
在这里插入图片描述
代码

import QtQuick 2.0
import QtQuick.Window 2.3
import QtQuick.Layouts 1.3
import QtQuick.Controls 2.5Window {id: rootvisible: truewidth: 319height: 570title: qsTr("Hello World")GridLayout{id: mainlayoutrows: 3columns: 3anchors.fill: parentButton{id:slidertext: "1"Layout.column: 0Layout.row: 0Layout.rowSpan: 3Layout.preferredWidth: 80Layout.preferredHeight: mainlayout.heightLayout.alignment: Qt.AlignHCenter}Button{text: "2"Layout.column: 1Layout.row: 0Layout.columnSpan: 2Layout.preferredWidth: mainlayout.width-slider.widthLayout.preferredHeight: 80Layout.alignment: Qt.AlignTop}Button{text: "5"Layout.column: 1Layout.row: 1Layout.alignment: Qt.AlignHCenter}Button{text: "6"Layout.column: 2Layout.row: 1Layout.alignment: Qt.AlignHCenter}Button{text: "8"Layout.column: 1Layout.row: 2Layout.alignment: Qt.AlignHCenter}Button{text: "9"Layout.column: 2Layout.row: 2Layout.alignment: Qt.AlignHCenter}}
}

3. 从右到左

在这里插入图片描述

代码

只需要加一点 layoutDirection: Qt.RightToLeft 就可以啦

...GridLayout{rows: 3columns: 3layoutDirection:  Qt.RightToLeft
....

上一篇:ffmpeg使用

下一篇:分布式锁学习笔记

相关内容

热门资讯

安卓系统可用版本怎么查,基于安... 你有没有想过,你的安卓手机里藏着多少秘密?比如,它的系统版本是多少?这可是关系到你手机性能和兼容性的...
安卓系统谷歌官方字体 你知道吗?在安卓系统的世界里,有一种字体,它就像一位优雅的舞者,在屏幕上跳着优美的舞蹈。它就是谷歌官...
安卓如何允许系统Google,... 你有没有想过,为什么你的安卓手机里总是有那么多谷歌的影子?别急,今天就来给你揭秘安卓系统是如何允许谷...
安卓系统怎么开放权限,解锁设备... 你有没有遇到过这种情况:手机里装了那么多好用的APP,可就是有些功能用不了,因为权限没开放!别急,今...
安卓手机刷xp系统能用,探索跨... 你有没有想过,把那台老旧的安卓手机改头换面,让它焕发第二春呢?没错,我要说的是,安卓手机刷xp系统竟...
英雄友谊安卓系统能玩吗,畅享跨... 亲爱的读者,你是否曾在某个午后,手握手机,沉浸在英雄与友谊的世界中?今天,我要跟你聊聊一个热门话题—...
安卓手机系统有分身吗,分身功能... 你有没有想过,你的安卓手机里是不是也藏着一个分身呢?没错,就是那种可以让你同时使用两个账号、两个应用...
安卓系统有没有北斗导航 你有没有想过,你的安卓手机里是不是藏着个神秘的北斗导航小能手呢?没错,今天咱们就来聊聊这个话题——安...
黑暗传说安卓系统能玩吗,畅玩无... 亲爱的玩家们,你是否曾在深夜里,被那些神秘而古老的传说所吸引?今天,我要跟你聊聊一个让人心跳加速的话...
平板电脑安卓系统没有wifi,... 亲爱的读者,你是否也有过这样的经历:拿着心爱的平板电脑,却发现它竟然没有连接上WiFi?这可真是让人...
采集无锡安卓系统的公司,技术驱... 你有没有想过,在这个科技飞速发展的时代,手机操作系统的重要性简直不言而喻?而在中国,有一个城市,它的...
安卓系统期末考试,全面解析与备... 亲爱的读者们,你是否也像我一样,最近被安卓系统的期末考试搞得焦头烂额?没错,就是那个看似简单,实则暗...
名图支持安卓系统吗,安卓系统下... 最近有没有听说一个超级火的图片编辑软件——名图?相信很多人都在用它来修图、美颜,甚至创作一些有趣的图...
安卓仿苹果八系统,创新体验 你有没有发现,最近安卓手机界掀起了一股仿苹果八系统的热潮?没错,就是那个曾经让我们惊艳的iPhone...
在linux安卓windows... 你有没有想过,无论你是用电脑办公,还是用手机刷剧,这些设备背后的操作系统可是起着至关重要的作用呢?今...
安卓原生系统修改键位,键位修改... 你有没有发现,用安卓手机的时候,有时候按错键位真是让人头疼?别急,今天就来给你详细聊聊安卓原生系统修...
安卓系统手游排行,指尖上的娱乐... 你有没有发现,最近手机上玩的手游越来越多了?各种类型、各种画风,简直让人眼花缭乱。今天,就让我带你一...
原生态安卓系统主题,尽享纯净视... 你有没有发现,手机的世界里,主题就像是衣服,可以瞬间改变整个手机的气质呢?今天,就让我带你一起探索一...
安卓手机刷系统需要密码 你有没有遇到过这种情况:安卓手机刷系统时,突然蹦出一个密码提示,让你一头雾水?别急,今天就来给你详细...
京东读书安卓系统退出,轻松告别... 你知道吗?最近在互联网上掀起了一阵小小的波澜,那就是京东读书安卓系统的退出。这事儿可不小,毕竟京东读...