你如何在Python中制作一个不断刷新的画布?

时间:2017-03-02 18:38:03

标签: python python-3.x canvas tkinter-canvas

我目前正在尝试使用Python为高中编码II类编写基本的smartmirror。我尝试做的一件事是创建一个欢迎文本,根据您按下的按钮进行更新。我正在阅读画布的字符串'来自.txt文档的文本根据我选择的用户而变化。当我更改文档的文本时,有没有办法让它自动刷新?

我用来显示消息的代码是:

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)

1 个答案:

答案 0 :(得分:0)

执行此操作的基本方法是循环。在循环的每个循环中,您应该检查用户输入并重绘。确保将所有内容分解为函数,以使循环清晰。像这样的东西 -

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

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

您可以使用内置input函数的python来获取getUserInput函数中的用户输入。

顺便说一句,这是一种天真的方法,因为循环会在重绘之前每次等待用户输入。正确的方法是使用threading。你可以有一个线程来捕获用户输入,而你的主循环做其他事情。由于数据同步问题,这可能会变得非常复杂。我现在只是坚持使用天真的方法。

此外,变量text2具有误导性。始终尝试将变量命名为它们的确切含义。在这种情况下,它是Canvas对象,因此将其称为canvas