Без какой-либо формальной подготовки и очень простого понимания Python 3.3, я очень стараюсь понять tkinter, чтобы создать базовый gui. Я прочитал на этом методе:Устранение фреймов в tkinter
Tkinter! Understanding how to switch frames
что путь над моей головой. Я не очень хорошо разбираюсь в копировании и вставке кода. Мой вопрос таков:
Если я хочу сделать gui с несколькими окнами, которые я достигаю, просто уничтожая фрейм и заменяя его другим при использовании класса, я думаю, я просто не понимаю, почему это так чертовски сложно. Сегодня я играл некоторое время, и я не понимаю, почему следующий код не работает. То, что я не могу обернуть моей лапшой, - это , почему она правильно переводится в новое окно, но не возвращается в главное окно. Обе кнопки кодируются одинаково для своих целей, но один работает, а другой нет.
from tkinter import *
class Application:
def __init__(self, master):
self.master = master
self.new_switch_on = False
self.main_switch_on = False
self.main_frame()
def main_frame(self):
if self.new_switch_on == True:
self.new_frame.destroy()
self.new_switch_on = False
self.main_switch_on = True
self.main_frame = Frame(self.master, width = 200, height = 100)
Label(self.main_frame, text = 'Main Frame').pack()
Button(self.main_frame, text = 'Next', command = self.new_frame).pack()
self.main_frame.pack()
def new_frame(self):
if self.main_switch_on == True:
self.main_frame.destroy()
self.main_switch_on = False
self.new_switch_on = True
self.new_frame = Frame(self.master, width = 400, height = 200)
Label(self.new_frame, text = 'New Frame').pack()
Button(self.new_frame, text = 'Back', command = self.main_frame).pack()
self.new_frame.pack()
root = Tk()
root.geometry('-1+1')
app = Application(root)
root.mainloop()
Я знаю, что я могу следовать вышеуказанной ссылке, чтобы получить желаемый результат, но я просто не понимаю, почему что-то вроде этого, или что-то еще, что является немного более упрощенным для нового ученика не может выполнить тот же результат.
Да ... Я чувствую себя идиотом, потому что знаю лучше, чем делать это. Спасибо, что указали на это. Работает точно так, как предполагалось, и теперь, после устранения булевых элементов и изменения нескольких вещей, он по-прежнему отлично работает. – Gregory6106