Kivy大部分的类和方法使用、导入一应具全

Kivy 完整类与函数列表及导入方式


Kivy 是一个庞大的 Python 框架,拥有数百个类和函数。以下是按模块分类的核心组件列表及正确导入方式,涵盖了开发中最常用的部分:

一、核心模块与导入方式


1. 应用基类 (kivy.app)


python
 
运行
 
 
 
 
from kivy.app import App  # 所有Kivy应用的基类

class MyApp(App):
    def build(self):
        return Label(text='Hello World')
 

2. 基础组件 (kivy.uix)


python
 
运行
 
 
 
 
# 布局类
from kivy.uix.boxlayout import BoxLayout  # 线性布局
from kivy.uix.gridlayout import GridLayout  # 网格布局
from kivy.uix.floatlayout import FloatLayout  # 浮动布局
from kivy.uix.relativelayout import RelativeLayout  # 相对布局
from kivy.uix.stacklayout import StackLayout  # 堆栈布局

# 交互组件
from kivy.uix.button import Button  # 按钮
from kivy.uix.label import Label  # 标签
from kivy.uix.textinput import TextInput  # 文本输入框
from kivy.uix.slider import Slider  # 滑块
from kivy.uix.checkbox import CheckBox  # 复选框
from kivy.uix.radiobutton import RadioButton  # 单选按钮
from kivy.uix.spinner import Spinner  # 下拉选择框
from kivy.uix.progressbar import ProgressBar  # 进度条
from kivy.uix.image import Image  # 图像
from kivy.uix.video import Video  # 视频
from kivy.uix.popup import Popup  # 弹窗
from kivy.uix.scrollview import ScrollView  # 滚动视图
from kivy.uix.tabbedpanel import TabbedPanel, TabbedPanelItem  # 标签页
from kivy.uix.filechooser import FileChooserListView, FileChooserIconView  # 文件选择器
 

3. 事件与属性 (kivy.event, kivy.properties)


python
 
运行
 
 
 
 
from kivy.event import EventDispatcher  # 事件分发基类
from kivy.properties import *  # 所有属性类型

# 常用属性类型
NumericProperty  # 数值属性
StringProperty  # 字符串属性
BooleanProperty  # 布尔属性
ObjectProperty  # 对象引用属性
ListProperty  # 列表属性
DictProperty  # 字典属性
ColorProperty  # 颜色属性 (RGBA)
OptionProperty  # 选项属性
 

4. 时钟调度 (kivy.clock)


python
 
运行
 
 
 
 
from kivy.clock import Clock  # 时钟调度器

# 常用方法
Clock.schedule_once  # 延迟执行一次
Clock.schedule_interval  # 定时执行
 

5. 图形绘制 (kivy.graphics)


python
 
运行
 
 
 
 
from kivy.graphics import *  # 所有图形指令

# 常用图形指令
Color  # 设置颜色
Rectangle  # 矩形
Ellipse  # 椭圆
Line  # 线条
Canvas  # 画布
 

6. 动画系统 (kivy.animation)


python
 
运行
 
 
 
 
from kivy.animation import Animation  # 动画类

anim = Animation(pos=(100, 100), duration=1)
anim.start(widget)  # 对widget应用动画
 

7. 输入处理 (kivy.input)


python
 
运行
 
 
 
 
from kivy.input.providers.mouse import MouseMotionEventProvider  # 鼠标事件
from kivy.input.providers.touchscreen import HMTEventProvider  # 触摸屏事件
 

8. 设置与配置 (kivy.config, kivy.uix.settings)


python
 
运行
 
 
 
 
from kivy.config import Config  # 应用配置
from kivy.uix.settings import Settings, SettingItem  # 设置面板
 

9. 资源管理 (kivy.resources)


python
 
运行
 
 
 
 
from kivy.resources import resource_find, resource_add_path  # 资源查找与路径管理
 

10. 多媒体 (kivy.core.audio, kivy.core.video)


python
 
运行
 
 
 
 
from kivy.core.audio import SoundLoader  # 音频加载器
from kivy.core.video import VideoLoader  # 视频加载器
 

11. 网络请求 (kivy.network)


python
 
运行
 
 
 
 
from kivy.network.urlrequest import UrlRequest  # 异步网络请求
 

12. 多语言支持 (kivy.lang)


python
 
运行
 
 
 
 
from kivy.lang import Builder  # KV语言构建器
Builder.load_file('my.kv')  # 加载KV文件
Builder.load_string(kv_string)  # 加载KV字符串
 

二、特殊导入方式


1. 导入 KV 语言中的类


python
 
运行
 
 
 
 
# 如果在KV文件中定义了自定义组件
from kivy.lang import Builder

Builder.load_string('''
<MyButton@Button>:  # 定义一个继承自Button的组件
    background_color: 1, 0, 0, 1  # 红色背景
''')

# 然后在Python代码中使用
class MyApp(App):
    def build(self):
        return MyButton(text='Hello')
 

2. 导入特定平台功能


python
 
运行
 
 
 
 
# 仅在Android平台导入
from kivy.utils import platform
if platform == 'android':
    from android.permissions import request_permissions, Permission  # Android权限
    from jnius import autoclass  # Java Native Interface
 

三、完整模块列表(精简版)


以下是 Kivy 主要模块的完整列表(不含所有子模块):

python
 
运行
 
 
 
 
# 核心模块
import kivy
import kivy.app
import kivy.clock
import kivy.config
import kivy.event
import kivy.factory
import kivy.garden
import kivy.graphics
import kivy.input
import kivy.lang
import kivy.metrics
import kivy.modules
import kivy.network
import kivy.properties
import kivy.resources
import kivy.uix
import kivy.utils
import kivy.vector
import kivy.animation

# 核心UI组件
import kivy.uix.actionbar
import kivy.uix.boxlayout
import kivy.uix.button
import kivy.uix.carousel
import kivy.uix.checkbox
import kivy.uix.codeinput
import kivy.uix.colorpicker
import kivy.uix.dropdown
import kivy.uix.filechooser
import kivy.uix.floatlayout
import kivy.uix.gridlayout
import kivy.uix.image
import kivy.uix.label
import kivy.uix.layout
import kivy.uix.listview
import kivy.uix.modalview
import kivy.uix.pagelayout
import kivy.uix.popup
import kivy.uix.progressbar
import kivy.uix.radiobutton
import kivy.uix.relativelayout
import kivy.uix.scatter
import kivy.uix.scrollview
import kivy.uix.slider
import kivy.uix.spinner
import kivy.uix.splitter
import kivy.uix.stacklayout
import kivy.uix.tabbedpanel
import kivy.uix.textinput
import kivy.uix.togglebutton
import kivy.uix.video
import kivy.uix.videoplayer
import kivy.uix.vkeyboard

# 多媒体与核心
import kivy.core
import kivy.core.audio
import kivy.core.camera
import kivy.core.gl
import kivy.core.image
import kivy.core.text
import kivy.core.video
import kivy.core.window

# 平台支持
import kivy.platform
import kivy.platform.android
import kivy.platform.ios
import kivy.platform.linux
import kivy.platform.macosx
import kivy.platform.win

# 其他功能
import kivy.garden
import kivy.logger
import kivy.metrics
import kivy.modules
import kivy.network
import kivy.resources
import kivy.setupconfig
import kivy.tools
import kivy.uix.settings
import kivy.uix.vkeyboard
 

四、导入建议


  1. 按需导入:避免使用 from kivy.uix import *,而是明确导入需要的类
  2. 使用别名:对于长模块名,可使用别名提高代码可读性

    python
     
    运行
     
     
     
     
    from kivy.uix.boxlayout import BoxLayout as BL
    my_layout = BL(orientation='vertical')
     
  3. 模块化组织:将相关导入放在一起,提高代码可维护性

    python
     
    运行
     
     
     
     
    # UI组件
    from kivy.uix.button import Button
    from kivy.uix.label import Label
    from kivy.uix.boxlayout import BoxLayout
    
    # 事件与属性
    from kivy.event import EventDispatcher
    from kivy.properties import StringProperty
     
  4. KV 语言配合:复杂 UI 建议使用 KV 语言,减少 Python 端的导入

    python
     
    运行
     
     
     
     
    # main.py
    from kivy.app import App
    
    class MyApp(App):
        pass
    
    if __name__ == '__main__':
        MyApp().run()
    
    # my.kv
    <MyWidget>:
        Button:
            text: 'Click me'
        Label:
            text: 'Hello World'
     

五、官方文档与资源


如需更详细的类和函数说明,建议查阅官方文档:

 

posted on 2025-07-26 22:50  痴心妄想  阅读(152)  评论(0)    收藏  举报

导航