2017-04-09 62 views
0

我有一個應用程序,我想添加一個'automode'。QMainWindow凍結watchdog.start(),如何使它們同時工作?

def start_stop_automode(self): 
    self.set_auto() 

    if not self.auto_mode_btn.isChecked() and self.observer.is_alive(): 
     self.observer.stop() 
     self.observer.join() 
     return 
    else: 
     self.observer.start() 
     while True: 
      try: 
      time.sleep(1) 
      except KeyboardInterrupt: 
      self.observer.stop() 
      self.observer.join() 

它將調用啓動watchdogFileSystemEventHandler類依次在觸發watchdogevent文件執行某些功能的插槽。

class Event(FileSystemEventHandler): 

    def on_created(self, event): 

    input_path = event.src_path 
    if input_path.endswith('_1.CSV'): 

     if self.file_creation_finished(input_path): 
      file = os.path.split(input_path)[-1].rstrip('.CSV') 
      file = file.split('_')[0] 
      self.exec_funk(order=file) 

通過debugg我看到FileSystemEventHandler類中的代碼正確地進行,除了QMainWindow實際上正在運行而watchdog運行的缺少的功能。 我如何容納他們兩個?

回答

0

好了,我終於明白,多麼簡單的溶液,只是刪除while loop,您可以用QMainWindow工作。