有没有办法保持Kivy程序的窗口大小固定?在某种意义上固定其窗口大小不能增加或减少。例如,我想要一个窗口大小为500x500的Kivy程序,最终用户无法更改窗口大小或将其转换为全屏。我尝试使用相同的值设置height,width,minimum_height和minimum_width all仍然可以更改窗口大小并全屏显示。
答案 0 :(得分:7)
有一种方法可以配置应用以禁用调整大小
from kivy.config import Config
Config.set('graphics', 'resizable', False)
此外,您可以设置窗口的默认宽度 - 高度
记住一些事情。在应用程序开头就这样做,它将仅保留该应用程序的设置。但是,如果您再运行Config.write()
,则会将设置保存在配置文件中。
在导入任何其他Kivy模块之前,应使用
Config.set
。理想情况下,这意味着在main.py脚本的开头设置它们。 或者,您可以使用永久保存这些设置Config.set
然后Config.write
。在这种情况下,您需要重新启动 应用程序让更改生效。请注意,这种方法会 影响所有Kivy应用系统。
阅读this wiki文章了解更多信息。
答案 1 :(得分:4)
实际上有很多方法可以做到这一点,其中很多都取决于你编写代码的方式,因为你没有给我们一个例子,我只能向你展示基本的例子......
比如说你不使用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())应该放在导入部分附近的源代码顶部!
答案 2 :(得分:2)
您可以在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()
答案 3 :(得分:0)
上述配置默认情况下不适用于RPi。
<script>
不起作用。 如果有人需要禁用全屏并想完全控制其RPi上的屏幕尺寸,则:
步骤:
<div>
使用Python3.5在RPi 3B Stretch上测试
答案 4 :(得分:0)
固定大小的一种不吸引人的方法是添加事件侦听器。
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)