2025-09-02
Python
00

本篇文章只是个人学习的时候的一些笔记,如果有什么错误的地方还请各位勿喷,手下留情,期待您的指正。 定期会更新文章到www.sea-whales.cn我的个人网站中,有兴趣的小伙伴可以进来看看、

Kivy命名规则

1、类继承App的类名(小写)(除去App)+ .kv 例如:

python
from kivy.app import App from kivy.uix.gridlayout import GridLayout from kivy.uix.label import Label from kivy.uix.textinput import TextInput from kivy.uix.button import Button from kivy.graphics import Color,Rectangle from kivy.properties import ColorProperty, ListProperty class LoginScreen(GridLayout): def __init__(self, **kwargs): super(LoginScreen, self).__init__(**kwargs) self.cols = 2 self.rows = 6 self.add_widget(Label(text='User Name')) self.username = TextInput(multiline=False) self.add_widget(self.username) self.add_widget(Label(text='password')) self.password = TextInput(password=True, multiline=False) self.add_widget(self.password) self.button = Button(size=(.4, .63), text='iPaoMi', background_color=(0, 0, 1), font_size=15, color=(1, 0, 1)) self.button.bind(on_press=self.on_push) self.add_widget(self.button) with self.password.canvas.before: Color(1, 0.5, 0, 0.5) self.password = Rectangle(size=self.password.size, pos=self.password.pos) def on_push(self, inst): print('inst'+inst.text) self.button.text = inst.text self.button.height=12 class MyApp(App): def build(self): self.root = root = LoginScreen() return root if __name__ == '__main__': MyApp().run()
2025-09-02
Python
00

本篇文章只是个人学习的时候的一些笔记,如果有什么错误的地方还请各位勿喷,手下留情,期待您的指正。 定期会更新文章到blog.sea-whales.cn我的个人网站中,有兴趣的小伙伴可以进来看看、

PageLayout 布局

PageLayou布局和前面几种布局方式是有差异的,他更倾向与动态布局,使用这个布局可以创建一个简单的多页面布局。可以在这些布局之间随意跳转,此布局每个子部件都作为一个单独的页面,所以此布局并不支持size_hintpos_hint: 例如如下: 会生成一个可以自由左右拉的按钮。

python
# !/usr/bin/env python3 # -*- coding: utf-8 -*- from kivy.uix.pagelayout import PageLayout from kivy.app import App from kivy.uix.button import Button class PageLayoutWidget(PageLayout): def __init__(self, **kwargs): super(PageLayoutWidget, self).__init__() btn = Button(text='btn1', background_color=[0.3,.9,.2,1]) btn2 = Button(text='btn2', background_color=[.1,.5,.4,1]) self.add_widget(btn) self.add_widget(btn2) class PageLayoutPyApp(App): def build(self): return PageLayoutWidget() if __name__ == '__main__': PageLayoutPyApp().run()
2025-09-02
Python
00

本篇文章只是个人学习的时候的一些笔记,如果有什么错误的地方还请各位勿喷,手下留情,期待您的指正。 定期会更新文章到blog.sea-whales.cn我的个人网站中,有兴趣的小伙伴可以进来看看、

布局

FloatLayout

py文件

python
# !/usr/bin/env python3 # -*- coding: utf-8 -*- from kivy.app import App from kivy.uix.floatlayout import FloatLayout class FloatLayoutWidget(FloatLayout): def __init__(self): super(FloatLayoutWidget, self).__init__() class FloatLayoutApp(App): def build(self): return FloatLayoutWidget() if __name__ == '__main__': FloatLayoutApp().run()

kv文件

2025-09-02
Python
00

只是个人学习的时候的一些笔记,如果有什么错误的地方还请各位勿喷,手下留情,期待您的指正。 定期会更新文章到www.sea-whales.cn我的个人网站中,有兴趣的小伙伴可以进来看看

目录

【Kivy】布局 FloatLayout、BoxLayout [学习分享](二)

【Kivy】布局 AnchorLayout、GridLayout [学习分享](三)

【Kivy】布局 PageLayout、RelativeLayout [学习分享](四)

【Kivy】布局 ScatterLayout 、StackLayout [学习分享](五)

布局

FloatLayout

py文件

python
# !/usr/bin/env python3 # -*- coding: utf-8 -*- from kivy.app import App from kivy.uix.floatlayout import FloatLayout class FloatLayoutWidget(FloatLayout): def __init__(self): super(FloatLayoutWidget, self).__init__() class FloatLayoutApp(App): def build(self): return FloatLayoutWidget() if __name__ == '__main__': FloatLayoutApp().run()
2025-09-02
Python
00

只是个人学习的时候的一些笔记,如果有什么错误的地方还请各位勿喷,手下留情,期待您的指正。 定期会更新文章到blog.sea-whales.cn我的个人网站中,有兴趣的小伙伴可以进来看看

旋转、平移和缩放空间坐标

在canvas 中是可以使用Rotate指令来控制旋转操作,他与ScatterLayout布局不同,它是对整个坐标空间,因此所有的子部件都是会受到影响。在使用整个参数时,需要指定三个参数;

  • axis: 设置用于旋转的轴,通常为z轴(0,0,1)
  • angle: 设置旋转度数
  • origin: 设置旋转参考点

来试试效果:

python
# !/usr/bin/env python3 # -*- coding: utf-8 -*- # 选择平移缩放 from kivy.uix.gridlayout import GridLayout from kivy.app import App class RotateGridLayoutWidget(GridLayout): def __init__(self, **kwargs): super(RotateGridLayoutWidget, self).__init__(**kwargs) class RotateTranslateZoomApp(App): def build(self): return RotateGridLayoutWidget() if __name__ == '__main__': RotateTranslateZoomApp().run()