2017-07-19 10 views
0

Ich versuche, eine Schaltfläche in meiner .kv-Datei ein Texteingabe-Widget in der .kv-Datei mit der aktuellen Zeit zu aktualisieren.Wie bekomme ich eine Variable von .py-Datei in .kv-Datei Text_Input-Widget

Ich habe die aktuelle Zeit in einer Variablen in einer Funktion in der .py-Datei gespeichert.

def get_time(self, event): 
    dt3 = str(datetime.datetime.now().strftime("%H-%M")) 
    return dt3 

Der Teil der .kv Datei:

CustButton: 
    text: "Click for current Time" 
    on_press: time3=root.get_time('dt3') 

CustTextInput: 
    id: time3 
    hint_text: 
    font_size: 25 

ich keine Fehler bekommen, aber wenn ich nichts passiert klicken. Ich bin nicht sicher, ob ich 'dt3' in einer Objekteigenschaft speichern muss, um sie an die .kv-Datei zu übergeben.

Jede Hilfe wäre willkommen. Vielen Dank.

Antwort

0

Ich fand eine Lösung. Mir fehlte die Referenz für das Feld Hinweistext in den Schaltflächen on_press Befehl. Siehe unten für Arbeits Code:

CustButton: 
    text: "Click for current Time" 
    on_press: time3.hint_text=root.get_time('dt3') 

CustTextInput: 
    id: time3 
    hint_text: "" 
    font_size: 25 
0

Sie könnten time3.text = root.get_time('dt3') statt hint_text und readonly: True in CustTextInput haben verwenden möchten. Auch ist es besser, on_release statt on_press

CustButton: 
    text: "Click for current Time" 
    on_release: time3.text=root.get_time('dt3') 

CustTextInput: 
    id: time3 
    text: "" 
    readonly: True 
    font_size: 25 
+0

Dank für die Spitze zu verwenden, ich habe tatsächlich am Ende ändert es bereits statt auf hint_text in Text. Über on_release informiert, aber könnten Sie erklären, warum es besser ist, dies anstelle von on_press zu verwenden? Prost – Aiden

+0

Es ist nur das Verhalten von Tasten, um die Befehle zu tun, wenn freigegeben (in fast allem anderen), so würde es normal, wer auch immer Ihre kivy app verwenden :-) –

+0

fair genug, danke für den Rat. – Aiden

Verwandte Themen