【问题标题】:How to change the settings type and position of a kivy app?如何更改 kivy 应用的设置类型和位置?
【发布时间】:2018-11-19 10:52:24
【问题描述】:

我不知道如何更改我的 kivy 应用程序中使用的显示设置面板的类型。我目前使用以下代码来创建面板:

def build_config(self, config):
    config.read("settings.ini")
    App.build_config(self, config)

def build_settings(self, settings):
    settings.size_hint = (0.8, 0.8)
    settings.pos = (200,200)
    settings.interface_cls = SettingsWithSidebar()
    settings.add_json_panel("General Settings", self.config,
                            filename="settings_general.json")
    settings.add_json_panel("Analysis", self.config,
                            filename="settings_analysis.json")
    App.build_settings(self, settings)

这给了我标准的SettingsWithSidebar 面板,看起来比较难看。我想将其更改为标准的Settings 面板,它看起来更好,但不知道该怎么做。 我查看了docs 并找到了interface_cls 属性,但将其值更改为Settings()SettingsWithSidebar() 似乎无济于事。

我的第二个问题是我不知道如何根据应用程序的位置设置设置面板的位置(200,200 是占位符)。我知道如何在 kv 语言中实现这一点,但我不知道如何在创建应用程序之前引用它的 pos。我确实想将设置面板的中心绑定到应用程序窗口的中心,但我找不到有关如何完成该任务的资源。

【问题讨论】:

  • 我怀疑你在设置interface_cls 时应该去掉()
  • 你的意思是我应该简单地将其设置为“设置”而不是“设置()”?我也试过了,但也没有用。
  • 是的,我就是这个意思。
  • 其实我觉得SettingsSettingsWithSidebar是一样的。查看documenttion 并从中选择一个标识为settings widget 的类。

标签: python python-3.x kivy


【解决方案1】:

好的,我找到了解决问题的方法: 要使用标准面板以外的任何其他设置面板,必须更改 App 类的 settings_cls 属性,而不是设置本身的属性。这可以通过添加来完成

self.settings_cls = Settings # Desired settings class

应用程序的构建方法。

要更改设置弹出窗口的位置,必须更改设置对象的 pos_hint 给应用程序类的 build_settings 方法。示例:要将设置窗口的大小更改为应用大小的 90%,然后将其放置在应用的中心,必须添加:

settings.pos_hint = ({"center_x": .5, "center_y": .5})
settings.size_hint = (0.9, 0.9)

调用App.build_settings(self, settings)之前的build_settings方法(其中settings是传递给该方法的设置对象)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-19
    • 2018-07-05
    • 2011-01-31
    • 1970-01-01
    • 1970-01-01
    • 2020-12-05
    • 1970-01-01
    相关资源
    最近更新 更多