49

我开始使用 编写程序kivy,但我在理解它如何处理大小时遇到​​了一些问题。

例如:

import kivy
kivy.require('1.5.1')

from kivy.app import App
from kivy.uix.button import Button

class MyApp(App):
    def build(self): return Button(text='Some text')

MyApp().run()

上面的程序有效,但它创建了一个巨大的窗口。尝试设置size=(100, 100)不会改变任何东西。设置size_hint=(None, None)将显示一个大小正确的按钮,但它随机放置在一个仍然很大的窗口内。尝试设置大小MyApp也不会改变任何东西。

如何创建一个与按钮大小相同的窗口?这应该是一个足够简单的任务,但是查看文档和示例我找不到任何关于此的内容。

4

4 回答 4

103

目前有两种方式:

  • 在创建窗口之前:

    import kivy
    kivy.require('1.9.0')
    
    from kivy.config import Config
    Config.set('graphics', 'width', '200')
    Config.set('graphics', 'height', '200')
    
  • 创建窗口后动态:

    from kivy.core.window import Window
    Window.size = (300, 100)
    
于 2015-05-19T17:21:40.370 回答
17

用这个:

from kivy.core.window import Window
Window.size = (300, 100)

如果你使用

from kivy.config import Config
Config.set('graphics', 'width', '200')
Config.set('graphics', 'height', '200')
Config.write()

这将导致默认屏幕尺寸的丢失!默认屏幕尺寸非常有用。

于 2018-08-12T13:06:35.000 回答
9

我会评论马丁的回答,但我没有声誉。设置配置文件时,请务必“写入”您的更改:

from kivy.config import Config
Config.set('graphics', 'width', '200')
Config.set('graphics', 'height', '200')
Config.write()

这就像将信息提交到数据库一样,如果您对此有所了解的话。

于 2017-12-09T11:56:32.453 回答
2

使用Config.write()会将您的更改设置为默认设置。如果您不小心运行此程​​序并想要恢复更改,您可以使用Config.write()默认值再次运行(因此恢复您的更改),或者您可以使用文本编辑器打开$HOME/.kivy/config.ini并编辑它。

于 2021-01-03T05:06:32.653 回答