PySide2学习总结(十一)QML布局

2023-12-28 06:38

本文主要是介绍PySide2学习总结(十一)QML布局,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

QML可以直接设置X与Y坐标的值来进行布局,但这种做法不利于布局的调整和代码的维护,因而更推荐采用定位器、布局管理器以及锚布局来完成QML布局。
QML常用的定位器有:Row, Column, Grid以及Flow;常用布局管理器有RowLayout, ColumnLayout, GridLayout,以及Anchor(锚布局)。

定位器

Row

QML 中的 Row 元素会将其子控件都排列在同一行,相互不重叠。可以使用spacing 属性来定义子控件之间的距离。

Column

QML 中的 Column元素会将其子控件都排列在同一行,相互不重叠。可以使用spacing 属性来定义子控件之间的距离。

Grid

QML 中的 Grid元素会将其子控件都均匀地排列在一个网格内,相互不重叠,每一个子控件都被放置在一个网格单元的(0,0)位置,也就是左上角。Grid的rows 和columns属性定义网格的行数和列数,列数默认是4。
可以使用Grid的spacing 属性来定义网格单元之间的距离,这里注意水平和垂直方向的spacing都是一样的。

Flow

与Grid类似不同之处在于,Flow不用指定行数和列数,他会计算Item的尺寸然后与自身尺寸比较自动换行。

编程示例

将以上定位器结合起来编辑代码如下:

import QtQuick 2.7
import QtQuick.Controls 2.3
import QtQuick.Layouts 1.1ApplicationWindow {id: _window// 窗口标题设置title: "Test App"width: 400height: 400// Window默认不可见,需要进行设置为可见visible: truemenuBar: MenuBar {Menu {title: "File"Action {text: "New"shortcut: "Ctrl+N"}Action {text: "Open"shortcut: "Ctrl+O"}}Menu {title: "Help"Action {text: "About App"shortcut: "F1"}}}header: ToolBar {// 横向RowLayout {ToolButton {// 设置提示文字ToolTip.visible: hoveredToolTip.text: qsTr("Create new File")// 设置命令图标icon.name: "New"icon.source: "../img/new.png"}ToolButton {ToolTip.visible: hoveredToolTip.text: qsTr("Open File")icon.name: "Open"icon.source: "../img/open.png"}}}Grid {columns: 3spacing: 5Rectangle { color: "red"; width: 50; height: 50 }Row {spacing: 0Rectangle { color: "green"; width: 50; height: 50 }Rectangle { color: "gray"; width:50; height: 50 }}Column {spacing: 0Rectangle { color: "yellow"; width: 50; height: 50 }Rectangle { color: "black"; wi

这篇关于PySide2学习总结(十一)QML布局的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/545244

相关文章

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

CSS弹性布局常用设置方式

《CSS弹性布局常用设置方式》文章总结了CSS布局与样式的常用属性和技巧,包括视口单位、弹性盒子布局、浮动元素、背景和边框样式、文本和阴影效果、溢出隐藏、定位以及背景渐变等,通过这些技巧,可以实现复杂... 一、单位元素vm 1vm 为视口的1%vh 视口高的1%vmin 参照长边vmax 参照长边re

CSS3中使用flex和grid实现等高元素布局的示例代码

《CSS3中使用flex和grid实现等高元素布局的示例代码》:本文主要介绍了使用CSS3中的Flexbox和Grid布局实现等高元素布局的方法,通过简单的两列实现、每行放置3列以及全部代码的展示,展示了这两种布局方式的实现细节和效果,详细内容请阅读本文,希望能对你有所帮助... 过往的实现方法是使用浮动加

Python中连接不同数据库的方法总结

《Python中连接不同数据库的方法总结》在数据驱动的现代应用开发中,Python凭借其丰富的库和强大的生态系统,成为连接各种数据库的理想编程语言,下面我们就来看看如何使用Python实现连接常用的几... 目录一、连接mysql数据库二、连接PostgreSQL数据库三、连接SQLite数据库四、连接Mo

Git提交代码详细流程及问题总结

《Git提交代码详细流程及问题总结》:本文主要介绍Git的三大分区,分别是工作区、暂存区和版本库,并详细描述了提交、推送、拉取代码和合并分支的流程,文中通过代码介绍的非常详解,需要的朋友可以参考下... 目录1.git 三大分区2.Git提交、推送、拉取代码、合并分支详细流程3.问题总结4.git push

Kubernetes常用命令大全近期总结

《Kubernetes常用命令大全近期总结》Kubernetes是用于大规模部署和管理这些容器的开源软件-在希腊语中,这个词还有“舵手”或“飞行员”的意思,使用Kubernetes(有时被称为“... 目录前言Kubernetes 的工作原理为什么要使用 Kubernetes?Kubernetes常用命令总

Python中实现进度条的多种方法总结

《Python中实现进度条的多种方法总结》在Python编程中,进度条是一个非常有用的功能,它能让用户直观地了解任务的进度,提升用户体验,本文将介绍几种在Python中实现进度条的常用方法,并通过代码... 目录一、简单的打印方式二、使用tqdm库三、使用alive-progress库四、使用progres

基于Qt Qml实现时间轴组件

《基于QtQml实现时间轴组件》时间轴组件是现代用户界面中常见的元素,用于按时间顺序展示事件,本文主要为大家详细介绍了如何使用Qml实现一个简单的时间轴组件,需要的可以参考下... 目录写在前面效果图组件概述实现细节1. 组件结构2. 属性定义3. 数据模型4. 事件项的添加和排序5. 事件项的渲染如何使用

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

Java向kettle8.0传递参数的方式总结

《Java向kettle8.0传递参数的方式总结》介绍了如何在Kettle中传递参数到转换和作业中,包括设置全局properties、使用TransMeta和JobMeta的parameterValu... 目录1.传递参数到转换中2.传递参数到作业中总结1.传递参数到转换中1.1. 通过设置Trans的