2017-07-29 13 views
0

こんにちは、私は答えを見つけることができない素朴な疑問、 は、私はクラスを持っていると言います'someVariable'の値です どうすればいいですか?私は 'KivyApp.someVariable'、 'app.someVariable' 'root.KivyApp.someVariable'などを試みました...そして他の順列。基本的な質問には申し訳ありませんが、私は困惑しています。すべての答えを評価してください。PythonのKivy、KVコード内の参照クラス変数

+0

「someVariable」の値であるテキストに「アクセスする」という意味ですか? – quamrana

+0

@quamranaはいそれは私が欲しいものです –

答えて

0

これは

from kivy.app import App 
from kivy.lang import Builder 
from kivy.uix.label import Label 
from kivy.properties import StringProperty 



kv_str = Builder.load_string(""" 
Button: 
    on_press: print(app.label_text) 
""") 

class MyApp(App): 
    label_text = StringProperty() 

    def __init__(self, **kwargs): 
     self.label_text = 'Palim' 
     super(MyApp, self).__init__(**kwargs) 

    def build(self): 
     return kv_str 

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

を働いているこれは、私はそれがボタン上またはあなたのケースのラベルのテキストを初期化したときkivyは、プロパティを設定していないと信じて

from kivy.app import App 
from kivy.lang import Builder 
from kivy.uix.label import Label 
from kivy.properties import StringProperty 



kv_str = Builder.load_string(""" 
Button: 
    text: app.label_text 
    on_press: print(app.label_text) 
""") 

class MyApp(App): 
    label_text = StringProperty() 

    def __init__(self, **kwargs): 
     self.label_text = 'Palim' 
     super(MyApp, self).__init__(**kwargs) 

    def build(self): 
     return kv_str 

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

ではありません。

しかし、一般的に、私はこのテキストをラベル自体に貼り付けます。

from kivy.app import App 
from kivy.lang import Builder 
from kivy.uix.label import Label 


class Lbl(Label): 

    def __init__(self, **kwargs): 
     self.text = 'Palim' 
     super(Lbl, self).__init__(**kwargs) 


kv_str = Builder.load_string(""" 
Lbl: 
""") 

class MyApp(App): 

    def build(self): 
     return kv_str 

if __name__ == '__main__': 
    MyApp().run() 
関連する問題