• Kivy主窗体大小的控制


    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. 不全屏[自定大小]

     要让程序主窗体不全屏显示,并认为指定宽高的话,可以通过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

    4. 固定窗体大小

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

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

    5. 窗体最小size

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

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

    效果如下:

    6. 总结

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

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

  • 相关阅读:
    Android众说纷纭分辨率
    Android初识Helloworld
    Android从零开始
    PHP使用APC获取上传文件进度
    央行mlf,SLF,PSL,MLF,SLO
    python的lxml解析器
    美国风投行业50年数据揭示的10条VC投资秘密法则
    osx的10款文本编辑器
    nano命令,vi ed pico sed joe emacs jed ex
    修改centos7/osx的MAC地址
  • 原文地址:https://www.cnblogs.com/toomax/p/12971150.html
Copyright © 2020-2023  润新知