1. 引入依赖模块
主窗体大小的控制,需要使用到kivy.core.window
中的Window
模块
1 from kivy.app import App 2 from kivy.core.window import Window 3 from kivy.uix.boxlayout import BoxLayout 4 from kivy.uix.button import Button
2. 简单的布局
直接使用代码布局,一个BoxLayout
中加入一个Button
class MainApp(App): def build(self): root = BoxLayout(orientation='vertical') btn = Button(size_hint=(None, None), width=50, height=50, text='btn') root.add_widget(btn) return root if __name__ == '__main__': MainApp().run()
程序运行之后,就会全屏显示,效果如图,可见kivy
的坐标原点是在左下角
3. 不全屏[自定大小]
要让程序主窗体不全屏显示,并认为指定宽高的话,可以通过Window
的fullscreen
和size
来配置,效果如下:
1 class MainApp(App): 2 def build(self): 3 # 设置窗体不全屏 4 Window.fullscreen = False 5 # 指定初始化后的主窗体大小,但是程序运行后,还是动态地改变大小 6 Window.size = (360, 240) 7 root = BoxLayout(orientation='vertical') 8 btn = Button(size_hint=(None, None), width=50, height=50, text='btn') 9 root.add_widget(btn) 10 return root
4. 固定窗体大小
窗体大小的固定,需要在kivy.config.Config
类中配置,所以需要引入改模块,效果如下,可以看到最大化额按钮变成灰色,而且窗体大小不可调。
1 from kivy.config import Config 2 Config.set('graphics','resizable', False) # 窗体可变设置为False
5. 窗体最小size
一般我们不会固定窗体的大小值,而是设置窗体的最小值,以防止布局美观。要做到这种效果,需要使用Window
的是minimum_width
和minimum_height
属性。
1 Window.minimum_width, Window.minimum_height = 360, 240
效果如下:
6. 总结
-
窗体的设置主要涉及的类:
kivy.core.window.Window
和kivy.config.Config
-
其实上面还漏掉了一个功能,就是将窗体的边框去掉,这个需要使用到
kivy.core.window.Window.borderless
属性,将其设置为True
即可去掉窗体边框。但是这个不是本章说的重点。这个属性需要和拖拽行为结合使用。