有没有办法使Kivy程序的窗口大小固定不变? 固定是指其窗口大小无法增加或减小。例如,我想要一个窗口大小为500x500的Kivy程序,最终用户既不能更改窗口大小也不能将其转换为全屏模式。 我尝试将高度,宽度,最小高度和最小宽度都设置为相同的值,但仍然可以更改窗口大小和全屏显示。
有一种方法可以配置该应用程序以禁用调整大小。
from kivy.config import Config
Config.set('graphics', 'resizable', False)
同样的方法,您可以设置窗口的默认宽度高度。
记住一件事。在应用程序开始时这样做,只会为该应用程序保留设置。但是,如果您运行 Config.write() ,则会将设置保存在配置文件中。
在导入任何其他Kivy模块之前应使用Config.set。理想情况下,这意味着在您的main.py脚本的开头设置它们。
或者,您可以使用Config.set然后Config.write永久保存这些设置。在这种情况下,您需要重新启动应用程序才能使更改生效。请注意,此方法将影响系统范围内的所有Kivy应用程序。
阅读此维基文章了解更多信息。
实际上,有很多种方法可以做到这一点,但是很多方法都取决于你如何编写代码,因为你没有给我们一个例子,所以我只能向你展示基本的示例...
比如说,如果你没有使用kivy设计语言,而是直接在Python中完成项目,你可以按照以下方式设置一个根部件
Root = Widget(size = (500,500))
Window.size = (500, 500)
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')
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()
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)
上述配置默认情况下不适用于树莓派。
Window.size(500,500)
无效果。 如果有人需要禁用全屏并希望在他的RPi上完全控制屏幕大小:
操作步骤:
sudo raspi-config
Advanced Options ->
GL Driver ->
G1 GL (Full KMS)->
OK ->
Reboot
在搭载Python3.5的RPi 3B Stretch上进行了测试
Config.write()
调用,它将不会将设置应用于所有应用程序,而仅适用于此应用程序,这可能是您想要的。@ParthibBiswas - illright