Я создаю приложение и хотел бы перенаправить вывод, сгенерированный функцией (привязанный к кнопке), ко второму фрейму на странице. Я не могу понять, как взять вывод консоли (операторы print) из функции, связанной с кнопкой, и перенаправить ее во второй кадр.
Мое приложение построено с использованием подхода класса и выглядит следующим образом:
class MyApp(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
image = Image.open("wallhaven-47j39o.jpg")
self.background_image = ImageTk.PhotoImage(image)
container = tk.Frame(self)
container.pack(side="top", fill="both", expand = True)
container.grid_rowconfigure(0, weight=1)
container.grid_columnconfigure(0, weight=1)
self.frames = {}
for F in (UserLogin, MainMenu, TestPage, signupPage, ExtractXLSX, Nomenclature, Buffers, AddUsers, RemoveUsers,
DeleteUsers, CreateUsers, ListUserItems):
frame = F(container, self)
self.frames[F] = frame
frame.grid(row=0, column=0, sticky="nsew")
self.show_frame(UserLogin)
def show_frame(self, cont):
frame = self.frames[cont]
frame.configure(background='#e6eeff')
frame.tkraise()
class ListUserItems(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
self.controller = controller
background_label = tk.Label(self, image=controller.background_image)
background_label.image = controller.background_image
background_label.place(x=0, y=0, relwidth=1, relheight=1)
frame2 = Frame(self, bg='white', width=500, height=300, bd=4, relief=RAISED).place(x=400, y=350)
label = tk.Label(self, text="User's items listing", font=('Courier', 18), bg=Background).place(relx=0.30, rely=0.10)
self.user_label = tk.Label(self, text="Nom de l'utilisateur :", bg=Background, font=("Courier", 12))
self.user_label.place(x=330, y=200)
self.user = tk.Entry(self, bg='#abb5c6', font=("Verdana", 10), width=27)
self.user.place(x=540, y=203)
self.execute_button = tk.Button(self, text=" Execute ", width=30, activebackground='blue', command=lambda: list_user_items(self.user.get(), textbox)).place(x=540, y=250)
self.back_button = tk.Button(self, text="Main menu", width=30, activebackground='blue', command=lambda: controller.show_frame(MainMenu)).place(x=540, y=650)
Функция list_user_items представляет собой простую функцию API:
def list_user_items(username):
gis = authentification()
user = gis.users.get(username)
user_items = user.items()
print(user_items)