Перенаправить вывод консоли Tkinter на фрейм - PullRequest
0 голосов
/ 09 октября 2019

Я создаю приложение и хотел бы перенаправить вывод, сгенерированный функцией (привязанный к кнопке), ко второму фрейму на странице. Я не могу понять, как взять вывод консоли (операторы 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...