[英]Starting an external process after opening a new tkinter window. [Python]
我正在使用具有“執行操作時請稍候”窗口的程序。 運行批處理文件時,此窗口需要保持打開狀態。 批處理過程完成后,窗口將關閉。 我正在使用Python方法.after()在窗口打開后調用批處理過程。 出現問題是,在.after()中設置的時間之后,窗口關閉並重新打開,變成白色,並且不顯示任何文本。 這是相關的代碼。
def backupCallBack(self, event):
self.backupCB = Toplevel()
self.backupCB.grab_set()
self.backupCB.transient(self.exportGUI)
message = "Please wait while the\ndatabase is backed up..."
Label(self.backupCB, text=message, padx=100, pady=20).pack()
event.after(200,self.runBackup)
def runBackup(self):
name = Entry.get(self.backupEntry)
self.backupWindow.destroy()
self.exportGUI.destroy()
os.system('.\\src\\backup.bat %s' % name)
self.backupCB.destroy()
在整個批處理過程中,“請等待”窗口需要打開並保持打開狀態。 我使用.after()錯誤嗎? 什么是完成此任務的更合適方法? 謝謝你的幫助!
after
方法在200 * ms *之后運行self.runBackup
,其中包括self.backupCB.destroy()
,這是您的等待窗口。
如果您的意圖是在銷毀窗口之前等待x時間,則可以考慮將os.system('.\\\\src\\\\backup.bat %s' % name)
移至after
方法上方的backupCallBack
(並更改200毫秒)到更實質的東西)。 否則,您將需要弄清楚如何設置等同於以下條件的條件: if batch == done
,
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.