zoukankan      html  css  js  c++  java
  • python kivy 简单入门

    1. kivy安装

    pip install --upgrade pip wheel setuptools # 确保你的pip是最新版本
    
    # 2.7版本
    python -m pip install docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew # 依赖包
    python -m pip install kivy.deps.gstreamer  # 依赖包
    
    # 3.5版本
    python -m pip install kivy.deps.angle # 依赖包
    
    python -m pip install kivy # 安装kivy

    # 以上安装方法会比较慢或者会出现请求超时的情况,遇到以上情况的请修改pip的请求源:

    首先在window的文件夹窗口输入 : %APPDATA%

    然后在底下新建pip文件夹,然后到pip文件夹里面去新建个pip.ini,然后再里面输入内容

    [global]
    trusted-host=mirrors.aliyun.com
    index-url=http://mirrors.aliyun.com/pypi/simple/

    2. kv模板语法介绍

    KV语言允许你以声明的方式创建控件树,以及绑定控件属性到其他的控件或使用一种自然的方式进行回调。

    • 它允许非常快速并灵活的改变你的UI。
    • 它还可以让你的应用程序与应用程序的界面进行分隔。

    KV源自规则的搭建,这些规则被用于描述一个Widget的内容,你可以有一个根规则,以及一些类或模板规则。

    你可以以如下方式声明你的根控件类:

    Widget:

    使用如下方式声明其他控件:

    <MyWidget>:

    KV语言有三个特殊的关键字:

    • app: 总是与你的应用关联
    • root: 与当前控件的根控件关联
    • self: 与控件关联

    示例:

    MyRootWidget:
        BoxLayout:
            Button:
            Button:

    这里不在做详诉,想了解kv语法的朋友请点击 http://www.cnblogs.com/sitemanager/p/4119058.html

    kivy所有api介绍:https://kivy.org/docs/api-kivy.html

    kv模板使用中文仅支持python2.7版本,其他版本不支持kv模板上使用中文会出现编译错误

    3. 简单的实例

    实例地址:https://github.com/DudeYouth/kivy-deom.git

    目录结构

    kv模板(hello.kv)

    <NButton@Button>: # 扩展Button组件
        font_size:'25sp'
        
    NButton: # 定义一个根组件(关联视图的组件)
        text:'hello word!11234'
        on_release:root.onclick() # 事件绑定

    python(main.py)

    from kivy.app import App
    from kivy.uix.button import Button
    
    # 关联kv模板的处理类   
    # 格式: 文件名+App  
    # 系统会自动关联同一目录下与类名相同的kv模板
    class HelloApp(App):
        pass
    
    # NButton组件的处理类 
    # Button是父类(父组件)
    class NButton(Button): 
        def onclick(self): # 组件相关的处理方法
            self.text = 'Hi boy!' # 改变NButton的text内容
    
    # 运行app
    HelloApp().run() 

    进入工作目录执行

    python main.py

    视图:

    点击视图触发事件,显示结果:

  • 相关阅读:
    单变量线性回归
    【记】国奖交流会
    转【研究生第一篇学术论文常犯问题总结】
    this.$confirm里面使用await异步调取接口数据
    margin和padding的值是百分比的时候是怎么计算的?
    原生js实现三级联动下拉框
    两个数组里面的对象元素根据相同的id合并到一个数组
    制作遮罩层的样式
    自定义表单验证方法的使用
    封装获取操作系统和浏览器类型的方法
  • 原文地址:https://www.cnblogs.com/dudeyouth/p/7095375.html
Copyright © 2011-2022 走看看