В tkinter - как мне вызвать функцию с помощью кнопки и вывести на GUI? - PullRequest
1 голос
/ 28 апреля 2020

Приложение с двумя кнопками для вызова функций в зависимости от предпочтений пользователя

Здравствуйте и спасибо заранее за вашу помощь! Я относительный новичок в tkinter и проработал несколько учебных пособий и несколько вопросов по переполнению стека. Однако я не смог произвести вывод функции обратного вызова в окне GUI после нажатия пользователем кнопки. Код, обрисованный в общих чертах ниже:

root = tk.Tk()
root.title('Crowdsourcing creativity')

    class Application(tk.Frame):

Ниже я попытался создать полноэкранное приложение, которое можно закрыть с помощью клавиши ESC

        def __init__(self, master=None):

            super().__init__(master)
            self.master = master
            pad=3
            master.geometry("{0}x{1}+0+0".format(
            master.winfo_screenwidth()-pad, master.winfo_screenheight()-pad))
            master.bind('<Escape>',self.close_window)
            self.pack()
            self.create_widgets()

        def close_window(self,event):
            root.destroy()

Далее я создал две кнопки

        def create_widgets(self):

            prompt_button = tk.Button(self,text = 'Do something', command=self.give_prompt).pack(side=tk.LEFT)
            location_button = tk.Button(self, text = 'Go somewhere', command=self.give_location).pack(side=tk.RIGHT)

Наконец, я попытался определить функции обратного вызова для кнопок. Обратите внимание, что prompt () и location () относятся к функциям, определенным ранее в коде (по сути, возвращают случайный элемент из соответствующих списков).

        def give_prompt(self):

            label1 = Label(self, prompt())
            label1.pack()

        def give_location(self):

            label2 = Label(self, location())
            label2.pack()

app = Application(master=root)
app.mainloop()

Вывод в настоящее время появляется в терминале, где я запускаю код , а не GUI. Я также хотел бы, чтобы оригинальные кнопки исчезали при нажатии, чтобы выходной сигнал был единственным, что осталось в GUI. Любые предложения о том, как это исправить, с благодарностью! Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...