Kivy主窗体大小的控制
阅读原文时间:2023年07月08日阅读:1

1. 引入依赖模块

主窗体大小的控制,需要使用到kivy.core.window中的Window模块

from kivy.app import App
from kivy.core.window import Window
from kivy.uix.boxlayout import BoxLayout
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. 不全屏[自定大小]

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

class MainApp(App):
def build(self):
# 设置窗体不全屏
Window.fullscreen = False
# 指定初始化后的主窗体大小,但是程序运行后,还是动态地改变大小
Window.size = (360, 240)
root = BoxLayout(orientation='vertical')
btn = Button(size_hint=(None, None), width=50, height=50, text='btn')
root.add_widget(btn)
return root

4. 固定窗体大小

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

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

5. 窗体最小size

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

Window.minimum_width, Window.minimum_height = 360, 240

效果如下:

6. 总结

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

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

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章