Próbuję nauczyć się jak używać tkintera i znalazłem przydatny kod przez youtube, którego tak naprawdę nie rozumiem w pełni. Byłbym wdzięczny, gdyby niektórzy mogli mi pomóc to zrozumieć. Oznaczono rzeczy nie rozumiałem z **Tkinter! Zrozumienie, jak przełączać ramki
import tkinter as tk # why not from tkinter import? **
class SampleApp(tk.Tk): tk.TK**
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
# the container is where we'll stack a bunch of frames
# on top of each other, then the one we want visible
# will be raised above the others
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 (StartPage, PageOne, PageTwo):
page_name = F.__name__
frame = F(container, self) **
self.frames[page_name] = frame **
# put all of the pages in the same location;
# the one on the top of the stacking order
# will be the one that is visible.
frame.grid(row=0, column=0, sticky="nsew")
self.show_frame("StartPage")
def show_frame(self, page_name):
'''Show a frame for the given page name'''
frame = self.frames[page_name]
frame.tkraise() **
class StartPage(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent) **
self.controller = controller **
label = tk.Label(self, text="This is the start page",
font=TITLE_FONT)
label.pack(side="top", fill="x", pady=10)
button1 = tk.Button(self, text="Go to Page One",
command=lambda: controller.show_frame("PageOne"))
button2 = tk.Button(self, text="Go to Page Two",
command=lambda: controller.show_frame("PageTwo"))
button1.pack()
button2.pack()
czy mógłbyś udostępnić link do youtube? –
@BryanOakley W przypadku, gdy wciąż szukałeś, zobaczyłem samouczek [this] (https://www.youtube.com/watch?v=jBUpjijYtCk), który używa Twojego kodu z [pierwotnego pytania] (http: // stackoverflow.com/a/7557028/3826759), chociaż mówi, skąd pochodzi. Jest też [to] (https://pythonprogramming.net/plotting-live-bitcoin-price-data-tkinter-matplotlib/). –
@double_j: tak, znalazłem to jakiś czas temu, ale dzięki. Nie widziałem tego innego linku, który podałeś. Poprawiłem oryginalną odpowiedź, dzięki czemu mogę powiedzieć, kto zaczął od mojego kodu i kto zaczął od tego samouczka wideo. Kod ten przyjął własne życie, pojawia się w wielu pytaniach dla początkujących. –