2021-07-25

一起学习kyvy(一):第一个kivy程序“Hello World”

kivy是跨平台的,可运行在手机、window、平果等电脑地方。由于kyvy是基于python开发的,所以在安装kivy之前,请安装好python3的稳定版本。我们一起来学习吧。

一、安装kivy包
pip install kivy
程序会自动下载并安装最新版本,同时会安装一些主要依赖包。一些其他包边用边安装。

二、第一个kivy程序“Hello World”
(一)main.py文件

# 导入 kivy 的 App 类,它是所有 kivy 应用的基类
from kivy.app import App
# Kivy 内置了丰富的控件(widget),如
# 按钮 (button), 复选框 (checkbox),标签 (label), 输入框 (textinput),滚动容器 (scrollable container) 等
from kivy.uix.button import Button
# 引入BoxLayout布局
from kivy.uix.boxlayout import BoxLayout


class IndexPage(BoxLayout):
    # 初始化
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        # 添加一个按钮
        self.join = Button(text="Hello World")
        # 将按钮添加到页面控件中
        self.add_widget(self.join)


# 从 App 类中继承了 kivy 应用最基本的方法,如创建窗口、设置窗口的大小和位置等
class TestApp(App):
    # 实现 TestApp 类的 build 方法(继承自 App 类)
    def build(self):
        # build 方法返回的控件,在 Kivy 中,称之为“根控件” (root widget)
        # Kivy 将自动缩放根控件,让它填满整个窗口。
        return IndexPage()


# 当.py文件被直接运行时,if __name__ == '__main__'之下的代码块 将        被运行
# 当.py文件以模块形式被导入时,if __name__ == '__main__'之下的代码块   不被运行
if __name__ == "__main__":
    TestApp().run()

结果是这样。是一按钮,它目前占满了整个程序的界面

结果是这样:是一个大按钮,它目前占满了整个程序的界面。后续通过布局可以调整各控件(widget)的位置、大小等。
kivy 最大的思想就是将界面和逻辑分开写,而编写界面的代码,如同CSS一样简单,kivy公司称之为kivy design language 。这样界面调整不会影响逻辑层面的调整,非常方便。希望大家熟练这种写法。以上程序可以改成界面文件test.kv和逻辑文件main.py:

# 导入 kivy 的 App 类,它是所有 kivy 应用的基类
from kivy.app import App
# Kivy 内置了丰富的控件(widget),如
# 按钮 (button), 复选框 (checkbox),标签 (label), 输入框 (textinput),滚动容器 (scrollable container) 等
from kivy.uix.button import Button
# 引入BoxLayout布局
from kivy.uix.boxlayout import BoxLayout


class IndexPage(BoxLayout):
    # 初始化
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
       
       
# 从 App 类中继承了 kivy 应用最基本的方法,如创建窗口、设置窗口的大小和位置等
class TestApp(App):
    # 实现 TestApp 类的 build 方法(继承自 App 类)
    def build(self):
        # build 方法返回的控件,在 Kivy 中,称之为“根控件” (root widget)
        # Kivy 将自动缩放根控件,让它填满整个窗口。
        return IndexPage()


# 当.py文件被直接运行时,if __name__ == '__main__'之下的代码块 将        被运行
# 当.py文件以模块形式被导入时,if __name__ == '__main__'之下的代码块   不被运行
if __name__ == "__main__":
    TestApp().run()

test.kv(与主类名TestApp转为小写并去掉App,这样会自动加载这个文件):

<IndexPage>:
    Button:
        text: 'Hello World!'

界面文件test.kv是不是很简单?运行的效果应是一样的。您可以修改kivy文件,如添加Label等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值