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

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
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的坐标原点是在左下角

Kivy主窗体大小的控制 Python 第1张 

3. 不全屏[自定大小]

 要让程序主窗体不全屏显示,并认为指定宽高的话,可以通过Windowfullscreensize来配置,效果如下:

 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

Kivy主窗体大小的控制 Python 第2张

4. 固定窗体大小

窗体大小的固定,需要在kivy.config.Config类中配置,所以需要引入改模块,效果如下,可以看到最大化额按钮变成灰色,而且窗体大小不可调。

1 from kivy.config import Config
2 Config.set('graphics','resizable', False) # 窗体可变设置为False

 

Kivy主窗体大小的控制 Python 第3张

5. 窗体最小size

一般我们不会固定窗体的大小值,而是设置窗体的最小值,以防止布局美观。要做到这种效果,需要使用Window的是minimum_widthminimum_height属性。

1 Window.minimum_width, Window.minimum_height = 360, 240

效果如下:

Kivy主窗体大小的控制 Python 第4张

6. 总结

  • 窗体的设置主要涉及的类:kivy.core.window.Windowkivy.config.Config

  • 其实上面还漏掉了一个功能,就是将窗体的边框去掉,这个需要使用到kivy.core.window.Window.borderless属性,将其设置为True即可去掉窗体边框。但是这个不是本章说的重点。这个属性需要和拖拽行为结合使用。

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄