gpt4 book ai didi

python - 自动调整自定义 kivy 小部件的大小

转载 作者:太空宇宙 更新时间:2023-11-03 17:19:35 24 4
gpt4 key购买 nike

我刚刚发现了 kivy,并决定尝试一下它作为我下一个软件项目的 GUI 框架。我完成了教程,现在想创建自己的小部件。但是,我在正确调整小部件大小时遇到​​了一些麻烦。这是一个最小的(非)工作示例:

import kivy
kivy.require('1.9.0')

from kivy.app import App
from kivy.uix.layout import Layout
from kivy.graphics import Color, Rectangle


class TestWidget(Layout):

def __init__(self, **kwargs):
super(TestWidget, self).__init__(**kwargs)
with self.canvas:
Color(1, 1, 1)
self.rect = Rectangle(pos=(0,0), size=(1,1))
self.bind(pos=self.update)
self.bind(size=self.update)

def update(self, *args):
self.rect.pos = self.pos
self.rect.size = self.size


class TestApp(App):

def build(self):
return TestWidget()


if __name__ == '__main__':
TestApp().run()

我希望这会显示一个白色窗口,其中白色矩形随窗口调整大小。但是,大小仅在启动时正确设置一次,并且永远不会再次调用 update 方法。我做错了什么?

我在 StackOverflow 上找到了工作示例,但它们都使用我想避免的 kv 语言(必须有一种方法让它在没有 kv 语言的情况下工作......)。

编辑:我在 Linux 上运行 kivy 1.9.0、pygame 1.9.2a0 和 Python 3.4.1

非常感谢任何帮助。

最佳答案

好的,我找到了解决方案。这似乎是一个pygame问题。我现在强制 kivy 使用 SDL2,它运行得非常完美。

关于python - 自动调整自定义 kivy 小部件的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33305154/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com