Ich habe eine Tkinter GUI, die ich einen Subprozess erzeugen und herausfinden möchte, wenn der Subprozess endet, ohne auf den Unterprozess zu warten, was bedeutet, dass meine GUI ist immer noch komplett interaktiv/nicht eingefroren.Python - Ermitteln, wann Subprozess mit Parent-Prozess abgeschlossen ist Tkinter GUI noch interaktiv
Ich habe viele Methoden ausprobiert, wie die in den folgenden (meist Stackoverflow) Links gefunden diejenigen: 1, 2, 3 und 4.
Ich habe festgestellt, dass ich keine Methode verwenden kann, die eine For- oder While-Schleife verwendet, um in den Zeilen zu lesen, oder das wird mit meiner GUI warten, bis die Schleife das Lesen in allem beendet. Von dem, was ich bestimmt habe, brauche ich eine Art Threading. Die Verwendung einiger Beispiele über die obigen Links scheint jedoch mein Problem nicht zu lösen. Wenn ich zum Beispiel den Code in [4] so anpassen würde, dass er funktioniert und mit meinem Code Sinn macht, würde meine GUI bis zum Programmende blockieren.
Format meines Codes:
class MyClass(tk.Frame):
def _init_(self,parent):
# calls constructor of inherited class
# other relevant code to initiate
self.initUI()
def runButtonFunction(self):
# self.process = Popen(program_I_want_to_open)
# ?? Need some way to determine when subprocess has
# exited so I can process the results created by that subprocess
def stopButtonFunction(self):
# terminates the subprocess created in run and its children at
# any moment subprocess is running
def initUI(self):
# creates all UI widgets, one of which is a button starts the
# subprocess and another button that can terminate the subprocess
Welchen Ansatz soll ich in suchen, die Art von Funktionalität, die ich erreichen will? Irgendwelche konzeptionellen Ratschläge, Pseudocode oder tatsächliche Beispiele für Code wären sehr hilfreich.
Ich kann alles klären, was keinen Sinn ergibt.