Funktion beim Start ausführen und Systemsignale registrieren
Verfasst: Dienstag 8. April 2014, 19:57
Hallo, ich bin noch recht neu bei Python und GTK.
Mein Problem ist, dass ich mein Programm dazu bringen möchte, direkt nach dem Start des GTK-Main-Loop mit der Arbeit anzufangen (eine Datei zu entschlüsseln) während es einen Statusbalken zeigt. Also bevor der Benutzer irgendetwas gedrückt hat. Außerdem möchte ich, dass das Programm auf Systemsignale (SIGINT, SIGTERM) reagiert, und zwar möglichst umgehend. Momentan geht nichts davon, weil mir der Main-Loop das ganze Programm blockiert. Während ein Befehl aus dem GUI ausgeführt wird, friert deshalb auch die ganze Oberfläche fest, an Statusleisten ist da nicht zu denken.
Meine erste Idee: Den Main-Loop in einem Unterthread starten. Funktioniert auch soweit, dass ich nebenher was anderes tun, und auf Systemsignale reagieren kann, bringt aber andere Probleme mit sich. Deshalb meine Frage: Gibt es irgendwo in diesem Gtk/Gobject/Gdk-Monster eine möglichkeit, Callbacks für Systemsignale zu registrieren, Funktionen direkt nach Aufbau des ersten Fensters aufzurufen, und die GUI während der Abarbeitung zu aktualisieren, so dass ich das wieder in den Hauptthread packen kann?
Würde 'ne Menge Komplexität sparen. :K
Mein Problem ist, dass ich mein Programm dazu bringen möchte, direkt nach dem Start des GTK-Main-Loop mit der Arbeit anzufangen (eine Datei zu entschlüsseln) während es einen Statusbalken zeigt. Also bevor der Benutzer irgendetwas gedrückt hat. Außerdem möchte ich, dass das Programm auf Systemsignale (SIGINT, SIGTERM) reagiert, und zwar möglichst umgehend. Momentan geht nichts davon, weil mir der Main-Loop das ganze Programm blockiert. Während ein Befehl aus dem GUI ausgeführt wird, friert deshalb auch die ganze Oberfläche fest, an Statusleisten ist da nicht zu denken.
Meine erste Idee: Den Main-Loop in einem Unterthread starten. Funktioniert auch soweit, dass ich nebenher was anderes tun, und auf Systemsignale reagieren kann, bringt aber andere Probleme mit sich. Deshalb meine Frage: Gibt es irgendwo in diesem Gtk/Gobject/Gdk-Monster eine möglichkeit, Callbacks für Systemsignale zu registrieren, Funktionen direkt nach Aufbau des ersten Fensters aufzurufen, und die GUI während der Abarbeitung zu aktualisieren, so dass ich das wieder in den Hauptthread packen kann?
Würde 'ne Menge Komplexität sparen. :K