Page 1 of 1

Wie zeige ich eine Terminalausgabe aus einem Python -Skript in einem anderen Kivy -Skript an

Posted: 16 Feb 2025, 14:35
by Anonymous
Ich habe ein Python -Skript mit dem Namen "main.py", das im Grunde das Mikrofon des Benutzers verwendet, Befehle erkennt und eine Aufgabe ausführt. Wenn ich "Hallo" sage, wird das Skript verarbeitet, antworten Sie mit "Hallo" und führen Sie einen Befehl wie diesen aus: print ("Hallo Benutzer!") M Versuch zu tun ist die Ausgabe oder im Grunde die "Drucken" aus der Hauptfunktion in die Kivy Ouput_textBox . Ich habe Chatgpt bereits gefragt, aber es funktioniert immer noch nicht. Der folgende Code erfolgt aus der Datei boot.py , in der das Kivy -Fenster gestartet wird. Das Fenster selbst funktioniert gut. < /P>

Code: Select all

def bootEngram(self, instance):
try:
output_textbox = TextInput(
readonly=True,
background_color=(0, 0, 0, 1),
foreground_color="#55ead4",
font_size=14,
font_name=fontFile,
multiline=True
)

command = ["python", "D:\\silverhand\\code\\main.py"]
process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, bufsize=1, universal_newlines=True)

def update_output_text(instance, line):
instance.text += line

def read_output():
for line in iter(process.stdout.readline, ''):
Clock.schedule_once(lambda dt: update_output_text(output_textbox, line))  # Sichere UI-Aktualisierung
process.stdout.close()

for err in iter(process.stderr.readline, ''):
Clock.schedule_once(lambda dt: update_output_text(output_textbox, f"Error: {err}"))
process.stdout.close()
process.stderr.close()

process.wait()
Clock.schedule_once(lambda dt: output_popup.dismiss())

threading.Thread(target=read_output, daemon=True).start()

popup_content = BoxLayout(orientation="vertical", spacing = 10)

title_bar = BoxLayout(orientation="horizontal", size_hint_y=None, height=40, padding=(10, 5))

title_label = Label(
text="Engram",
color="#f3e600",
font_name=fontFile,
font_size=20,
bold=True,
halign="left",
size_hint_x = 1,
valign = "middle"
)

close_button = Button(
text="