1
我剛剛發現了kivy,並決定嘗試將它作爲我下一個軟件項目的GUI框架。我通過教程工作,現在想創建我自己的小部件。但是,我有一些問題讓小部件正確調整大小。下面是一個最小的(非)工作實施例:自動調整大小的定製kivy部件
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()
我預期這顯示一個白色窗口,其中白色矩形與窗口調整大小。但是,啓動時只能正確設置大小,並且不會再次調用該方法。我究竟做錯了什麼?
我在這裏找到了有關StackOverflow的工作示例,但它們都使用我想避免的kv語言(必須有一種方法才能使它在沒有kv語言的情況下工作...)。
編輯:我運行kivy 1.9.0,pygame的1.9.2a0和Python 3.4.1 Linux上
任何幫助深表感謝。
你的代碼似乎是正確的,它在這裏工作得很好。另外,我不建議避免使用kv,但確實不必使用它。 – inclement
在這個例子中,我試圖避免kv來理解kivy是如何在內部工作的。我已經懷疑這是我的設置問題。你能告訴我你使用的是哪個Python版本的kivy嗎? –