当我们用Python编写应用程序时基维, 在同一代码上编写所有内容会使代码混乱, 并且很难被别人理解。同样, 编写大型代码也难以维护窗口小部件树的构造和显式绑定的声明。
KV语言允许我们以声明的方式创建自己的窗口小部件树, 并以自然的方式将窗口小部件属性相互绑定或回调。
👉🏽Kivy教程–通过示例学习Kivy。
如何加载kv文件:
有2种方式加载.kv归档到代码或应用程序中
通过名称约定方法-
在编写代码时, 我们将创建App类。对于此方法, 文件名和应用程序类相同, 然后将kv文件保存为
appclassname.kv
Kivy会以小写形式查找与你的App类同名的Kv文件, 如果以" App"结尾则减去" App", 例如:
classnameApp ---> classname.kv
如果此文件定义了Root Widget, 它将被附加到应用程序的root属性, 并用作应用程序Widget树的基础。
下面给出了有关如何在kivy中使用.kv文件的示例代码:
# code how to use .kv file in kivy
# import kivy module
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 restrict the kivy version i.e
# below this kivy version you cannot
# use the app or software
# not coumpulsary to write it
kivy.require( '1.9.1' )
# define the App class
# and just pass rest write on kvfile
# not necessary to pass
# can also define function in it
class kvfileApp(App):
pass
kv = kvfileApp()
kv.run()
.kv文件代码以与应用程序类相同的名称保存–
Label:
text:
( '[b]Hello[/b] [color = ff0099]World[/color]\n'
'[color = ff0099]Hello[/color] [b]World[/b]\n'
'[b]Hello[/b] [color = ff0099]World:):)[/color]' )
markup: True
font_size: '64pt'
输出如下:
生成器方法
为了使用此方法, 你首先必须通过以下方式导入Builder
from kivy.lang import builder
现在, 通过构建器, 你可以直接将整个文件作为字符串或文件加载。通过这样做将.kv文件加载为文件:
Builder.load_file('.kv/file/path')
或者, 对于加载, kv文件作为字符串:
Builder.load_string(kv_string)
# code to use the .kv file as a string in the main file
# code how to use .kv file in kivy
# import kivy module
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
# it is to import Builder
from kivy.lang import Builder
# this restrict the kivy version i.e
# below this kivy version you cannot use the app or software
# not coumpulsary to write it
kivy.require( '1.9.1' )
# building kv file as string
kvfile = Builder.load_string( """
Label:
text:
('[b]Hello[/b] [color = ff0099]World[/color]\\n'
'[color = ff0099]Hello[/color] [b]World[/b]\\n'
'[b]Hello[/b] [color = ff0099]World:):)[/color]')
markup: True
font_size: '64pt'
""" )
# define the App class
# and just pass rest write on kvfile
# not necessary to pass
# can also define function in it
class kvfileApp(App):
def build( self ):
return kvfile
kv = kvfileApp()
kv.run()
输出如下:
首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。