编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

「Kivy自学笔记」如何导入任意位置的kv文件

wxchong 2024-09-16 07:09:11 开源技术 16 ℃ 0 评论
  • 导入kv文件
    • py文件中编写kv代码

导入kv文件

前面和大家一起学习的内容只讲了自动导入(在py文件同目录下创建kv文件),忘了和大家分享如何导入其他地方的kv文件,下面我们就一起来学习一下如何导入指定的kv文件到py文件中

  • 其实也很简单,我能只需要使用kivy.lang.builder中的Builder导入kv文件到py文件中即可,详情参考下列示例
  • py文件
# _*_ coding : UTF-8 _*_
# 开发时间: 2021/7/22  13:42
# 文件名称: TTS.py
# 开发工具: PyCharm
# Text to speech
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.widget import Widget
from kivy.lang.builder import Builder


class Test(Widget):
    pass


Builder.load_file("kv/tts.kv")  # 导入kv文件


class TTSApp(App):
    def build(self):
        # return Button(text="hello")   # 这是我们以前最简单的一个示例
        return Test()


if __name__ == '__main__':
    TTSApp().run()
  • kv文件的位置如下图
  • 运行结果
  • 从上面的示例中我们可以知道,只需要使用Builder.load_file()导入指定的kv文件即可

py文件中编写kv代码

  • 有时候我们可能会想:可不可以直接将kv文件的内容编写在py文件中呢?
  • 答案是肯定的,并且也很简单:我们只需要将kv文件的内容写在Builder.load_string()中即可,如下示例
# _*_ coding : UTF-8 _*_
# 开发时间: 2021/7/22  13:42
# 文件名称: TTS.py
# 开发工具: PyCharm
# Text to speech
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.widget import Widget
from kivy.lang.builder import Builder


class Test(Widget):
    pass


# Builder.load_file("kv/tts.kv")  # 导入kv文件
Builder.load_string(
    """
# 注意:这里需要顶格写,否则会报错!
<Test>:
    Button:
        text: "XiaoqiangClub"
    """
)


class TTSApp(App):
    def build(self):
        # return Button(text="hello")   # 这是我们以前最简单的一个示例
        return Test()


if __name__ == '__main__':
    TTSApp().run()
  • 这里有一点需要注意:Builder.load_string()中的kv内容第一行需要顶格,否则会报错!

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表