簡體   English   中英

打開新的tkinter窗口后啟動外部過程。 [蟒蛇]

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM