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即可去掉窗體邊框。但是這個不是本章說的重點。這個屬性需要和拖拽行為結合使用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM