0
我是一名完全新手,既能夠在一週前從codeacademy學習python,又能從youtube教程學習到kivy,因此我都是python和kivy的完美新手。Kivy Python - 無需使用NumericProperty即可增加變量的按鈕
難道有人請向我解釋爲什麼下面的代碼不會導致顯示n的標籤的屏幕,這是通過按鈕增加?
Python的文件
import kivy
from kivy.app import App
from kivy.uix.button import Button, Label
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import NumericProperty
class Example(BoxLayout):
n = 0
def n_plus(self):
self.n += 1
class ExampleApp(App):
def build(self):
return Example()
example = ExampleApp()
example.run()
KV文件
<Example>:
BoxLayout:
Label:
text: str(root.n)
Button:
text: "+1"
on_press: root.n_plus()
然後,你可以解釋爲什麼將n = NumericProperty(0),使這項工作?
我想在n上運行一些函數,這些函數似乎對數字屬性不起作用。
看看這個.kv的一種方法是,它沒有看到你的python中發生了什麼。所以你需要「幫助」.kv「看到」python中發生的變化:這就是調用「綁定」。使用NumericProperty(0)(或任何像ObjectProperty或StringProperty的屬性)是一種綁定方式。 這是我的理解,到目前爲止,我也開始kivy(幾個星期前),所以我很抱歉不能更精確。 – Enora
強制.kv「查看」python中發生的事情的另一種方法是更新python中標籤的文本:http://codepad.org/kg5Kd5pT – Enora