2017-03-02 1340 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