qmessagebox pops up incomplete, title with text "(Not respondig)" besides and no main text into box python pyqt6 and watchdog upgraded 04/08/2023
my code:
`import sys
import os
from PyQt6.QtWidgets import QApplication, QWidget, QPushButton, QMessageBox
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
# Clase para manejar los eventos de cambio de archivo o directorio
class Handler(FileSystemEventHandler):
def __init__(self, observer):
self.observer = observer
super().__init__()
def on_created(self, event):
# Detener el observador
self.observer.stop()
self.observer.unschedule_all()
# Mostrar mensaje de archivo creado
QMessageBox.information(None, "Archivo creado", f"Se creó el archivo: {event.src_path}")
def on_modified(self, event):
# Detener el observador
self.observer.stop()
self.observer.unschedule_all()
# Mostrar mensaje de archivo modificado
QMessageBox.information(None, "Archivo modificado", f"Se modificó el archivo: {event.src_path}")
class App(QWidget):
def __init__(self):
super().__init__()
self.title = 'Watchdog App'
self.left = 100
self.top = 100
self.width = 300
self.height = 200
self.initUI()
def initUI(self):
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)
# Botón para iniciar el watchdog
self.btn_start = QPushButton('Iniciar', self)
self.btn_start.move(50, 50)
self.btn_start.clicked.connect(self.start_watchdog)
# Botón para detener el watchdog
self.btn_stop = QPushButton('Detener', self)
self.btn_stop.move(150, 50)
self.btn_stop.clicked.connect(self.stop_watchdog)
self.show()
def start_watchdog(self):
# Directorio para monitorear
path = os.path.join(os.getenv("USERPROFILE"), "Downloads")
# Crear una instancia del observador y el manejador de eventos
self.observer = Observer()
self.event_handler = Handler(self.observer)
# Asignar el observador al manejador de eventos y empezar a monitorear
self.observer.schedule(self.event_handler, path, recursive=True)
self.observer.start()
print(f"Watchdog activo: {self.observer.is_alive()}")
def stop_watchdog(self):
# Detener el observador
self.observer.stop()
self.observer.unschedule_all()
self.observer.join()
print(f"Watchdog activo: {self.observer.is_alive()}")
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec())`
i ve tried to launch same function from a button to evaluate behavior. result: the problem does not repeat. note: watchdog was still runing but no events raised conclusion: the problem appears only when function is called by a watchdog event