如何在计划运行时退出电脑窗口?

By simon at 2019-05-18 • 0人收藏 • 10人看过

我正在为一些不同的 python 脚本创建一个调度程序,并且我正在使用一个 tkinter 窗口来获取我正在访问的服务器的用户名和密码。

我似乎可以让调度程序正常工作,但是当它正常工作时,它会打破主循环,所以窗口不再响应。

我尝试将 mainloop 置于保持调度运行的循环中,但这会导致调度程序停止运行。

Import tkinter as tk import subprocess import schedule import time class MainWindow (tk.Tk) : def init (self) : tk.Tk. Init (self) self.e 用户 label tk。 标签(自我,文本"电子邮件用户名")自我标签。 标签(自我,文本"电子邮件密码") self.e 帐户标签 tk。 Label (self,text"Email Account") self.Email 用户 tk。 条目(自己,宽度30)自己。 输入(self,show"*",width 30) self.email 帐户 tk。 输入(self,width 30) self.start scheduler tk。 按钮(自,文本"启动计划程序",命令 self.check email request) self.e 用户标签。 () pack () self.email user.pack () self.e-label. 包装()自己,电子邮件,包装()自己,帐户标签。 Pack () self.email account.pack () self.start scheduler.pack () def check email request (self) : call email script'call python email monitor.py {}{}{}'. 格式(self.email user.get () ,self.email pw.get () ,self.email account.get ()) completed subprocess.run (call email script,shell True) print ('returncode:',completed returncode) def print stuff (self) : schedule.every (1)。 Do (self.check email request)而 True: schedule.run pending () time.sleep (1) w.mainloop () # my failed attempt to solve this problem w MainWindow () w.mainloop ()

期望调度程序每1分钟调用一次我的检查邮件请求函数。 如果在 schedule 循环中不包含主循环,那么窗口将不再起作用。 当我包含主循环时,调度程序不再运行。

登录后方可回帖

Loading...