2016-11-06 15 views
1

Es sollte sehr einfach sein, aber ich konnte die Antwort nicht finden. Ich muss Popup mit Knopf durch .kv Akte öffnen. Weniger Wörter, mehr Code!Wie öffne Popup durch kv?

#.kv 
#... 
Button: 
    on_press: 
     #Here I need something like 
     #Popup_open: 
      #title: 'title' 
      #... 

Ich weiß, dass ich es

durch Hinzufügen von Funktion zu meiner Stammklasse tun können
#main.py 
#... 
myclass(object): 
    def myPopup(): 
     Popup(title='title',message='message').open() 

und dann rufen Sie diese Funktion

#.kv 
#... 
Button: 
    on_press: root.myPopup() 

aber es ist nicht der bequemste Weg für mich

Antwort

2

Verwenden Sie zwei Regeln:

#:import Factory kivy.factory.Factory 

<[email protected]>: 
    title: 'something' 
    Label: 
     text: 'content' 
<Test>: 
    Button: 
     on_press: Factory.YourPopup().open() 
+0

Ich fühlte mich in einem anderen Problem mit diesem 'Popup'. Es sollte eine Warnung und zwei Buttons 'Yes und No' (alles in Ordnung zu diesem Zeitpunkt) angezeigt werden. Ich habe eine Funktion in meiner Hauptklasse in' main.py' und muss diese Funktion aufrufen, wenn 'Yes' gedrückt wird. Außerdem muss ich Text von 'TextInput' als Parameter an diese Funktion übergeben. Ich habe versucht mit '#: set Antwort True', wenn' Yes' gedrückt wurde, aber es hat nicht funktioniert. Ich habe auch 'global' in meiner' .kv' Datei versucht, aber kein Ergebnis. Ich kann Frage stellen, wenn es bequemer wäre – Fogapod

+0

Ah, ich habe gerade verstanden. Ich kann diese Funktion in meine Hauptklasse (App) einfügen und sie mit 'app.myfunc()' aufrufen, oder? Aber wie man Parameter einfügt? – Fogapod

Verwandte Themen