2017-07-19 71 views
0

我正嘗試在.kv文件中使用按鈕更新.kv文件中的text_input小部件與當前時間。如何從.py文件將變量轉換爲.kv文件Text_Input小部件

我有當前時間存儲在.py文件中的函數中的變量。

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

的.kv文件的部分:

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

CustTextInput: 
    id: time3 
    hint_text: 
    font_size: 25 

我沒有得到任何錯誤,但是當我點擊沒有反應。我不知道我是否需要將「dt3」存儲在Object Property中傳遞給.kv文件。

任何幫助,將不勝感激。謝謝。

回答

0

我找到了解決方案。我錯過了按鈕on_press命令中hint_text字段的參考。請參見下面的工作代碼:

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

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

你可能想使用time3.text = root.get_time('dt3')代替hint_textCustTextInputreadonly: True。此外,它是更好地使用的on_release代替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

謝謝你的提示,其實我徹底地改變了它,而不是文字上hint_text了。注意on_release,但你能解釋一下爲什麼使用它而不是on_press更好?乾杯 – Aiden

+0

這只是按鈕的行爲,發佈時(幾乎所有其他)的命令,所以它會感到正常的使用你的kivy應用程序:-) –

+0

足夠公平,謝謝你的建議。 – Aiden