[英]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 上的屏幕尺寸:
操作步驟:
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.