Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Kivy 5种常用图形界面布局初探

Kivy 5种常用图形界面布局初探

作者头像
州的先生
发布于 2021-03-03 06:35:23
发布于 2021-03-03 06:35:23
3.8K03
代码可运行
举报
文章被收录于专栏:州的先生州的先生
运行总次数:3
代码可运行

对于任何图形界面的框架而言,布局都是非常重要的一个组成部分。

它就像人体的骨骼、房屋的钢筋混凝土梁架,支撑起整个图形界面、条理好各个小部件的位置。

在 Web 开发的前端 CSS 中,最常见的有栅格布局、绝对布局和相对布局。

在 Python 的 PyQt5 中,州的先生比较常使用的时网格布局、垂直布局和水平布局。

而 Kivy 也提供了不少的布局方式,供我们在使用 Kivy 开发跨平台的图形界面程序时使用。

Kivy 提供的布局方式

Kivy 中所有的布局模块都位于kivy.uix中,比如:

浮动布局:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from kivy.uix.floatlayout import FloatLayout

相对布局:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from kivy.uix.relativelayout import RelativeLayout

固定布局:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from kivy.uix.anchorlayout import AnchorLayout

网格布局:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from kivy.uix.gridlayout import GridLayout

堆叠布局:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from kivy.uix.stacklayout import StackLayout

使用方式也很简单,实例化之后,调用add_widget()方法将小部件添加进入即可。

下面,我们就通过一些实例来了解 Kivy 的几种常用图形界面布局。

浮动布局

在浮动布局中,小部件基本上不受限制,浮动在布局中。我们通过设置小部件的大小和位置,来自由地控制布局内的小部件。

相对布局

RelativeLayout 相对布局和浮动布局类似,但是浮动布局内的小部件是基于布局层的绝对定位,而相对布局使用的则是相对定位。

固定布局

AnchorLayout固定布局用于固定布局层内小部件的位置,可以将小部件固定在左侧、右侧、顶部、底部和中央。

不同于上述的布局方式,固定布局需要在实例化的时候指定固定方式的参数:

anchor_x参数表示 X 轴坐标的固定方式,接受left、center和right;•anchor_y参数表示 Y 轴坐标的固定方式,接受top、center和bottom;

网格布局

网格布局GridLayout在各类图形界面开发中都是很常用的布局层。通过行和列的设置,它可以灵活地自适应地控制小部件在布局层中的位置。

实例化的 GridLayout() 必须指定行rows、列cols 中至少一个值,不然将会抛出异常。例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
GridLayout(cols=2)

堆叠布局

堆叠布局 StackLayout 用于垂直或水平地排列小部件。堆叠布局支持以下两种方式来控制小部件的排列:

lr-tb:从左到右,然后从上到下地排列;•tb-lr:从上到下,然后从左到右地排列;

通过布局的orientation来设置上述的堆叠方式,例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
StackLayout(orientation='lr-tb')

最后

上面就是 Kivy 中比较常见的几种图形界面的介绍了。上面介绍的几个图形界面布局实例均来自于觅道文档的在线教程《使用Kivy构建现代桌面GUI应用》,如果需要上述布局实例的代码,可以点击“阅读原文”进行查看。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 州的先生 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
kali中有关py2和py3的问题(6.10更)
如果在python2和python3中同时拥有pip,那么在调用pip时需要如下方式
回天
2023/04/25
3450
Centos7安装Python3并安装Requests的方法
由于centos7原本就安装了Python2,而且这个Python2不能被删除,因为有很多系统命令,比如yum都要用到。
Erwin
2020/03/02
6K0
Centos7安装Python3并安装Requests的方法
CentOS 7.5下安装Python 3.x与原有Python 2.x共存
Linux下默认系统自带Python2.X的版本,这个版本被系统很多程序所依赖,所以不建议删除,如果使用最新的Python3那么我们知道编译安装源码包和系统默认包之间是没有任何影响的,所以可以安装Python3和Python2共存。
知忆
2021/06/06
6980
centos7安装python3.8_centos python3安装
centos7自带版本是python2.7 centos8是自带python3的 如果要用的3.0以上的版本需要手动安装,下载地址:https://www.python.org/ftp/python/
全栈程序员站长
2022/11/09
7410
如何在 CentOS 8 上安装 Python
Python 是世界上最流行的编程语言之一。简单易学的语法,使得 Python 成为初学者和有经验的开发者一个公认的选择。
雪梦科技
2020/05/11
9.7K0
如何在 CentOS 8 上安装 Python
KubeSphere 最佳实战:制作 Ansible 离线安装包实战指南
今天分享的内容是 KubeSphere 最佳实战「2024」 系列文档中的 Ansible 离线安装包制作实战指南。
运维有术
2024/07/06
4350
KubeSphere 最佳实战:制作 Ansible 离线安装包实战指南
CentOS 7中实现Python 3.
貌似目前大多数Linux发行版本中自带的Python还都是2.7.x系列,但是越来越多的包包都开始抛弃2.7.x版本了,记录一下在CentOS 7中安装Python 3.6实现与自带2.7两个版本共存并可以自由切换
py3study
2020/01/13
8930
腾讯云双十一活动:腾讯云轻量应用服务器快速搭建Python开发环境指南
双十一不仅仅是购物狂欢节,对于希望享受高性能云服务的企业和开发者而言,更是入手腾讯云产品的绝佳时机!然而,面对琳琅满目的产品与各种优惠活动,如何才能买到性价比最高的产品?本文将为你深入剖析腾讯云双十一的优惠机制,教你如何用最少的预算获取最佳的云服务配置,助你在年末冲刺中脱颖而出。
一键难忘
2024/11/10
4681
腾讯云双十一活动:腾讯云轻量应用服务器快速搭建Python开发环境指南
如何在CentOS 8上安装PHP
PHP是最常用的服务器端编程语言之一。 许多流行的CMS和框架(例如WordPress,Magento和Laravel)都是用PHP构建的。
逐鹿信息技术
2021/05/21
2.5K0
CentOS上用python3替换python2好不好?
虽然网上有很多人说不要乱动 CentOS 系统搭配好的 Python 环境,因为有很多系统程序是基于 Python2 的,比如 yum。但仔细想想,那些程序对 Python 的引用不都是人为的么?作为一个规范的系统,在引用一个解析器这方面肯定是有章可循的,而且现在不是都在将工作环境转移到 Python3 了么?虽然现在都是用 virtualenv 虚拟环境来搭环境了,不在乎系统全局的 Python 是什么版本,但有时候就是想好好玩一下,如果你也想玩的话,请继续往下看哈~下面会拿两个例子说下 CentOS 中一些程序对 Python2 的依赖是如何继续保持的:
benny
2019/05/14
1.8K0
Linux-CentOS6.9安装Python3与Python2共存
sudo -s 1 查看CentOS系统自带的Python信息,一般为2.6或2.7版,我们接下来要做的就是保留系统自带的Python版本,并安装 Python3.6.5 版本
双面人
2019/04/10
1K0
CentOS 8.1下搭建LEMP(Linux+Nginx+MySQL+PHP)环境
LEMP是一个软件堆栈,包含一组免费的开源工具,这些工具用于为高流量和动态网站提供动力。 LEMP是Linux,Nginx(发音为Engine X),MariaDB/MySQL和PHP的首字母缩写。
星哥玩云
2022/08/13
1.2K0
CentOS 8.1下搭建LEMP(Linux+Nginx+MySQL+PHP)环境
CentOS7下安装Python3和Py
(一)简述 刚安装的centos7.4版本默认是安装Python2.7,由于一些命令需要使用的原因,比如yum等,使用的是2.7.5版本的,由于现在很多库包括django都是使用Python3, 因此,有这样的需求:yum使用python2.7版本,django和其他的使用默认的python3版本。
py3study
2020/01/03
6390
Apache Superset1.2.0教程(四)—— CentOS环境安装
前文中,我们已经在windows环境进行了superset的安装,也对图表功能进行了展示。但是在平时使用以及生产环境中,还是需要在centos环境下进行操作。
大数据流动
2021/08/13
1.7K2
Apache Superset1.2.0教程(四)—— CentOS环境安装
如何在 CentOS 8 上安装 TensorFlow
TensorFlow是一个由Google 开发的,关于机器学习的开源平台。它可以在不同设备的 CPU 或者 GPU 上运行,并且它被很多组织所使用,其中包括Twitter, PayPal, Intel, Lenovo, 和 Airbus.
雪梦科技
2020/05/09
1.3K0
如何在 CentOS 8 上安装  TensorFlow
如何在CentOS 8上安装搭建OwnCloud私有云储存网盘
Owncloud是市场领先的客户端服务器软件,它提供一个云平台,允许您上传文件到网上服务器与朋友分享,备份文件并在云上同步它们。它是OneDrive,Dropbox和Google Drive等流行备份应用程序的绝佳替代品。
星哥玩云
2022/08/13
7.4K0
如何在CentOS 8上安装搭建OwnCloud私有云储存网盘
Python 离线环境
比如:对于数据安全要求比较严格的机房,服务器是不允许上网的。那么我现在开发了一套python程序,需要一些模块,怎么运行?
py3study
2020/01/20
1.1K0
如何在Ubuntu 20.04上安装Python Pip
Pip是用于安装Python软件包的工具。 使用pip,您可以从Python软件包索引库(PyPI)和其他软件包索引中搜索,下载和安装软件包。
用户5005176
2021/08/01
4.2K0
centos7上配置python3环境和
    centos7 默认的python版本是2.7,目前主流的python版本都是3.6或者3.7。centos的yum包管理器是基于python2编写的,所以不能直接删除,同时也要配置python环境版本为python3版本,而且需要两个版本共存。当时使用ubuntu16或者18是更好的选择,但是unbuntu容易出现更新崩溃的情况,不如centos稳定。
py3study
2020/01/06
2.1K0
如何在 CentOS 8 上安装 Python 3.8
Python 是世界上被广泛使用的编程语言之一。语法简单易学,Python 是初学者和有工作经验者的一个很流行的选择。Python 是一个多功能的编程语言。它可以被用来构建各种应用程序,从简单的脚本到复杂的机器学习算法。
雪梦科技
2020/05/09
3.3K0
如何在 CentOS 8 上安装 Python 3.8
相关推荐
kali中有关py2和py3的问题(6.10更)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验