首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在tkinter中后台执行功能

在tkinter中后台执行功能
EN

Stack Overflow用户
提问于 2020-07-10 10:01:51
回答 2查看 131关注 0票数 0

我试图在后台执行一个名为“警报”的函数,而调用“时钟”的函数正在运行。这是我的报警功能。由于内部代码很复杂,我只是举一个例子。

代码语言:javascript
复制
def Alarm():
     while True:
            current_time = dt.datetime.now().time()
            if timetable[0] == current_time:
                  print("Its time")
                  break

clock()
Alarm()
root.mainloop()

函数没有在后台执行,但它首先执行,然后启动GUI。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-10 10:06:24

你需要threading

代码语言:javascript
复制
import threading

# Your Alarm definition

alarm_thread = threading.Thread(target=Alarm)
main_thread = threading.Thread(target=root.mainloop)

alarm_thread.start()
main_thread.start()

这些函数现在将同时运行,但请注意,管理这两者之间的交互是很棘手的。我不知道clock函数是如何定义的,也不知道如何运行它,但是您可以很容易地修改代码,使其同时运行。

票数 1
EN

Stack Overflow用户

发布于 2020-07-10 10:25:54

您可以使用after()替换while循环:

代码语言:javascript
复制
def alarm():
    current_time = dt.datetime.now().time()
    if current_time >= timetable[0]:
        print("It's time")
    else:
        # check again 1 second later
        root.after(1000, alarm)

clock()
alarm()
root.mainloop()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62831906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档