【问题标题】:How can I execute multiple tasks with a function when pressing a button in Tkinter?在 Tkinter 中按下按钮时,如何使用函数执行多个任务?
【发布时间】:2020-11-30 13:50:42
【问题描述】:

所以,我的计划是制作一款在屏幕上显示序列的游戏,你必须按照序列点击正确的按钮。我将在这个项目中使用 Tkinter。这里有一些解释:当单击任何按钮时,将执行一个函数,该函数将执行一个参数,该参数将告诉哪个按钮已被单击,然后该函数将检查它是否是正确的按钮。

问题:如果用户单击右键,此函数将调用第二个函数来显示序列的下一个按钮。问题是显示它需要一些时间,同时 tkinter 按钮保持“点击”状态。我不希望它发生,也因为在发生这种情况时您无法执行其他任务,例如离开游戏或重新开始回合。

这里我有一个简单的例子来告诉你问题,如果你还看不到它:

import tkinter as tk
from time import sleep

def func():
    print('hi')
    func2()

def func2():
    print('hi2')
    for num in range(3, 11):
        sleep(1)
        print('hi' + str(num)) 

wn = tk.Tk()
b1 = tk.Button(wn, command=func)
b1.pack()
wn.mainloop()

在这种情况下,当按下按钮时,代码应该打印 'hi' + 1 到 10 的数字。但是,我之前说过的事情发生了。

如何使上面的示例以及我的项目正常工作?

【问题讨论】:

  • 放到另一个线程上
  • 研究一下tkinter方法after.

标签: python tkinter


【解决方案1】:

您可以使用threads,也可以定义运行func1和func2的func3。

【讨论】:

  • 线程在这个特定的实例中是完全没有必要的。
猜你喜欢
  • 1970-01-01
  • 2019-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-02
  • 1970-01-01
  • 1970-01-01
  • 2013-08-21
相关资源
最近更新 更多