个性化阅读
专注于IT技术分析

Python使用.kv文件的Kivy中的相对布局

Kivy是Python中与平台无关的GUI工具。由于它可以在Android, IOS, Linux和Windows等操作系统上运行。它基本上是用于开发Android应用程序, 但这并不意味着它不能在桌面应用程序上使用。

👉🏽Kivy教程–通过示例学习Kivy。

相对布局:

  • 此布局的操作方式与FloatLayout相同, 但是定位属性(x, y, center_x, right, y, center_y和top)是相对于Layout大小而不是窗口大小的。
  • 实际上, 无论绝对位置和相对位置如何, 当布局的位置更改时, 小部件都会移动。
  • 可用的pos_hint键(x, center_x, right, y, center_y和top)对于对齐边缘或居中很有用。
    例如:
    pos_hint:{‘center_x’:。5, ‘center_y’:。5}会将窗口小部件对齐在中间, 而不管窗口的大小如何。

使用RelativeLayout要做的第一件事就是导入它。

from kivy.uix.relativelayout import RelativeLayout

我们可以通过以下方式进行相对定位:
pos_hint:提供位置提示。我们最多可以定义8个键, 即它采用字典形式的参数。
pos_hint = {” x”:1, ” y”:1, ” left”:1, ” right”:1, ” center_x”:1, ” center_y”:1, ” top”:1, ” bottom”:1 (“顶部”:0)}

注意:

Floatlayout和RelativeLayout都支持绝对位置和相对位置, 这取决于使用pos_hint还是pos。但是, 如果要绝对位置, 请使用FloatLayout。

Basic Approach to create Relative Layout:
1) import kivy
2) import kivy App
3) import Relativelayout
4) Set minimum version(optional)
5) create class for layout 
6) create App class:
        - define build() function
7) Set up.kv file(name same ass the App class)
8) return Layout Class
9) Run an instance of the class

下面是实现:

main.py文件

## Sample Python application demonstrating the 
## working of RelativeLayout in Kivy using .kv file 
  
################################################### 
# import modules 
  
import kivy 
  
# base Class of your App inherits from the App class. 
# app:always refers to the instance of your application 
from kivy.app import App 
  
# This layout allows you to set relative coordinates for children.
from kivy.uix.relativelayout import RelativeLayout
  
# To change the kivy default settings 
# we use this module config 
from kivy.config import Config 
      
# 0 being off 1 being on as in true /false 
# you can use 0 or 1 && True or False 
Config. set ( 'graphics' , 'resizable' , True ) 
  
  
# creating the root widget used in .kv file 
class RelativeLayout(RelativeLayout): 
     pass
  
# creating the App class in which name 
#.kv file is to be named Relative_Layout.kv 
class Relative_LayoutApp(App): 
     # defining build() 
     def build( self ): 
         # returning the instance of root class 
         return RelativeLayout() 
  
# run the app 
if __name__ = = "__main__" : 
     Relative_LayoutApp().run()

.kv文件实施:

#.kv file implementation of RelativeLayout 
  
# creating button feature 
<Button>:
         # size of text on button
         font_size: 20
              
         # creating button 
         # a button 20 % of the width and 20 % 
         # of the height of the layout 
         size_hint: 0.2 , 0.2
  
<RelativeLayout>:
  
         # The Canvas is the root object
         # used for drawing by a Widget. 
  
         canvas:
                 Color:
                         rgb: 0 , 1 , 1
                 Rectangle:
                         # creating rectangle
                         # pos = 20 % and size = 60 % of the layout
                         pos:[ 0.2 * coord for coord in self .size]
                         size:[ 0.6 * coord for coord in self .size]
  
  
         # creating the button
  
         Button:
              
                 text: "B1"
  
                 background_color: 0.1 , 0.5 , 0.6 , 1
              
                 # positioned at 0 % in x axis and 0 % in y axis 
                 # from bottom left, i.e x, y = 0, 0 from bottom left: 
                 pos_hint: { "x" : 0 , "y" : 0 } 
  
         Button: 
                 text: "B2"
                 background_color: 1 , 0 , 0 , 1
                 pos_hint: { "right" : 1 , "y" : 0 } 
  
                      
         Button: 
                 text: "Yash"
                 background_color: 0.4 , 0.5 , 0.6 , 1
                 pos_hint: { "center_x" :. 5 , "center_y" :. 5 } 
  
         Button: 
                 text: "B3"
                 background_color: 0 , 0 , 1 , 1
                 pos_hint: { "x" : 0 , "top" : 1 } 
  
         Button: 
                 text: "B4"
                 background_color: 0.8 , 0.9 , 0.2 , 1
                 pos_hint: { "right" : 1 , "top" : 1 }

输出如下:

窗口图像的大小不同, 表明它如何根据窗口进行调整, 即相对

图片1

Python使用.kv文件的Kivy中的相对布局1

图片2:

Python使用.kv文件的Kivy中的相对布局2

图片3:

Python使用.kv文件的Kivy中的相对布局3

参考:https://kivy.org/doc/stable/api-kivy.uix.relativelayout.html

首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。


赞(0) 打赏
未经允许不得转载:srcmini » Python使用.kv文件的Kivy中的相对布局
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏