Внешний файл, который просто печатает слова из списка по одному слову в строке. до завершения, работает правильно, без ошибок, и его вывод поступает на консоль. Когда я нажимаю кнопку, я получаю консоль, которая мне не нужна, и вместо вывода появляется только мигающий курсор.
Консоль остается включенной в течение приблизительного времени, необходимое для работы. полностью, есть задержки по времени, поэтому я знаю, что он выполняет файл, но в то же время появляется консоль, в оболочке появляется ошибка.
Исключение в Обратный вызов Tkinter
Traceback (последний вызов последний):
Файл "C:\Users\Lou\AppData\Local\Programs\Python\Python313\Lib\tkinter\__init__.py", строка 2068, в __call__
return self.func(* args)
~~~~~~~~~^^^^^^^
Файл «C:\Users\Lou\Desktop\Python Development\Python Programs\8902A Op-Ver\Module Tester.py», строка 18, в btn_click
line = subprocess.stdout.readline().decode() ^^^^^^^^^^^^^^^^^
AttributeError: модуль «подпроцесс» не имеет атрибута 'stdout'
Код графического интерфейса:
Код: Выделить всё
import tkinter as tk
import subprocess
import sys, inspect
from subprocess import Popen
root = tk.Tk()
i = tk.PhotoImage(width=1, height=1)
# Title and GUI Size
root.title('Module Tester')
root.geometry("500x300")
# Button function
def btn_click():
btn_click.path = "Test Modules/Test Module 1.py"
Popen(["python", btn_click.path], stdout = subprocess.PIPE)
while True:
line = subprocess.stdout.readline().decode()
if not line:
break
output_box.insert(tk.END, line)
output_box = tk.Text(root, bd = 1, bg = "#3c3d3d", fg = '#7bfce9',
insertbackground='white', font = ("Segoe UI", 11), height = 5, width = 34)
output_box.place(x = 171, y = 167)
# Button
btn1_button = tk.Button(root, image=i, compound='c', width=115, height=20, bd = 1, bg = "#232124", fg = "#a571e5", activebackground="#a571e5", activeforeground="#232124", text = "Test Module 1", font = ("Segoe UI", 11), padx=0, pady=0, command=btn_click)
btn1_button.place(x = 10, y = 20)
root.mainloop()
Подробнее здесь: https://stackoverflow.com/questions/793 ... t-into-gui
Мобильная версия