簡體   English   中英

Kivy 程序的固定窗口大小

[英]Fixed window size for Kivy programs

有沒有辦法保持 Kivy 程序的窗口大小固定? 固定在它的窗口大小不能增加或減少的意義上。 例如,我想要一個窗口大小為 500x500 的 Kivy 程序,最終用戶既不能更改窗口大小,也不能將其變成全屏。 我嘗試使用相同的值設置高度、寬度、minimum_height 和 minimum_width,但我仍然可以更改窗口大小並全屏顯示。

有一種方法可以配置應用程序以禁用調整大小

from kivy.config import Config
Config.set('graphics', 'resizable', False)

此外,您可以通過相同的方式設置窗口的默認寬高。
記住一些事情。 在您的應用程序開始時這樣做,它只會保留該應用程序的設置。 但是,如果您隨后運行Config.write() ,則會將設置保存在配置文件中。

Config.set應該在導入任何其他 Kivy 模塊之前使用。 理想情況下,這意味着在 main.py 腳本的開頭設置它們。 或者,您可以使用Config.set然后Config.write永久保存這些設置。 在這種情況下,您需要重新啟動應用程序才能使更改生效。 請注意,這種方法將影響系統范圍內的所有 Kivy 應用程序。

閱讀這篇wiki 文章以獲取更多信息。

實際上有很多方法可以做到這一點,也就是說,其中許多方法取決於您編寫代碼的方式,並且由於您沒有給我們提供示例,因此我只能向您展示基本示例...

例如,假設您沒有使用 kivy 設計語言,並且您正在直接使用 python 進行項目,例如,您可以通過以下方式設置 Root 小部件

Root = Widget(size = (500,500))

你也可以避免這種情況,例如簡單地做

Window.size = (500, 500)

現在,如果您使用 kv 設計語言,除了在 .kv 文件中設置畫布、矩形等的大小外,這很容易。

正如@Leva7 所提到的,你也可以使用例如

from kivy.config import Config
Config.set('graphics', 'resizable', '0') #0 being off 1 being on as in true/false
Config.set('graphics', 'width', '500')
Config.set('graphics', 'height', '500')

注意上面的(即Config.set())應該放在靠近導入部分的源代碼頂部!

你可以在 kivy-1.10.0+ 上像這樣給出

import kivy
from kivy.app import App
from kivy.core.window import Window
from kivy.config import Config
kivy.config.Config.set('graphics','resizable', False)



class MyApp(App):
    def build(self):
        Window.size = (1280,720)
MyApp().run()

默認情況下,上述配置不適用於 RPi。

Window.size(500,500)

沒有效果。 如果有人需要禁用全屏並希望完全控制他的 RPi 上的屏幕尺寸:

禁用kivy全屏

操作步驟:

sudo raspi-config 

Advanced Options ->
GL Driver ->
G1 GL (Full KMS)->
OK ->
Reboot

使用 Python3.5 在 RPi 3B Stretch 上測試

一種固定大小的不吸引人的方法是添加事件偵聽器。

from kivy.core.window import Window

_fixed_size = (425, 700) #desired fix size

def reSize(*args):
   Window.size = _fixed_size
   return True
Window.bind(on_resize = reSize)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM