2017-04-09 1 views
0

Ich habe eine Anwendung, der ich einen 'Automode' hinzufügen wollte.QMainWindow friert bei watchdog.start() ein, wie man sie gleichzeitig arbeiten lässt?

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() 

Er fordert einen Schlitz, der die watchdogFileSystemEventHandler Klasse beginnt die wiederum einige Funktionen auf die Datei ausführt, die die watchdogevent ausgelöst.

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) 

Durch debugg ich sah, dass der Code innerhalb der Klasse FileSystemEventHandler korrekt durchgeführt wird, mit Ausnahme der fehlenden Funktionalität der QMainWindow tatsächlich Betrieb ist, während die watchdog laufen. Wie übernehme ich sie beide?

Antwort

0

Okay, ich erkenne jetzt, wie einfach die Lösung war, entfernen Sie einfach die while loop und Sie können mit der QMainWindow arbeiten.

Verwandte Themen