2017-03-02 1336 views
0

我目前正在嘗試使用Python爲高中的編程II類編寫一個基本的smartmirror。我試圖做的一件事是創建一個歡迎文本,根據您按下的按鈕進行更新。我正在讀取來自.txt文檔的畫布文本的字符串,該文檔根據我選擇的用戶而變化。當我更改文檔的文本時,是否有任何方法可以讓它自動刷新?你如何在Python中不斷刷新畫布?

的代碼我使用顯示的信息是:

text2 = Canvas(tk, width=500, height=100) 
welcometext = text2.create_text(200, 50, text=string, font=('Helvetica', 20, 'italic')) 
text2.pack(side=TOP, anchor=Center) 

回答

0

基本的方式做到這一點是有一個循環。循環的每個循環都要檢查用戶輸入和重畫。確保你把所有東西都分解成函數,這樣你的循環就變得乾淨了。像這樣的東西 -

canvas = Canvas(tk, width=500, height=500) 
text = '' 

while(True) { 
    getUserInput(text) 
    draw(canvas, text) 
} 

您可以使用內置的input功能Python的獲取用戶輸入您的getUserInput功能。

另外,這是一種天真的方法,因爲每次重繪前循環都會等待用戶輸入。正確的方法是使用threading。你可以有一個線程捕獲用戶輸入,而你的主循環做其他事情。由於數據同步問題,這可能變得非常複雜。我現在只是堅持天真的做法。

此外,變量text2是誤導。總是嘗試將變量命名爲它們的名稱。在這種情況下,這是一個Canvas對象,所以稱它爲canvas