Super einfache Code-Einführung. Ein anderer Artikel (hier) ist aufgrund des OpenCV-Codes lang geworden, daher werde ich ihn kurz zusammenfassen. Es sollte funktionieren, wenn Kissen enthalten ist.
main.py
# -*- coding: utf-8 -*-
import tkinter as tk
import PIL.Image, PIL.ImageTk
class App(tk.Tk):
#Beschwörung
def __init__(self, *args, **kwargs):
#Beschwörung
tk.Tk.__init__(self, *args, **kwargs)
#Legen Sie den Fenstertitel fest
self.title("Tkinter change page")
#Bestimmen Sie die Fenstergröße
self.geometry("800x600")
#Machen Sie das Fenstergitter 1x1
#Wenn Sie diesen Vorgang auskommentieren, verschiebt sich die Platzierung.
self.grid_rowconfigure(0, weight=1)
self.grid_columnconfigure(0, weight=1)
#-----------------------------------main_frame-----------------------------
#Erstellen Sie einen Hauptseitenrahmen
self.main_frame = tk.Frame()
self.main_frame.grid(row=0, column=0, sticky="nsew")
#Titeletikettenerstellung
self.titleLabel = tk.Label(self.main_frame, text="Main Page", font=('Helvetica', '35'))
self.titleLabel.pack(anchor='center', expand=True)
#Schaltfläche zum Verschieben zu Bild 1
self.changePageButton = tk.Button(self.main_frame, text="Go to frame1", command=lambda : self.changePage(self.frame1))
self.changePageButton.pack()
#--------------------------------------------------------------------------
#-----------------------------------frame1---------------------------------
#Zielrahmen erstellen
self.frame1 = tk.Frame()
self.frame1.grid(row=0, column=0, sticky="nsew")
#Titeletikettenerstellung
self.titleLabel = tk.Label(self.frame1, text="Frame 1", font=('Helvetica', '35'))
self.titleLabel.pack(anchor='center', expand=True)
#Taste, um von Bild 1 zum Hauptbild zurückzukehren
self.back_button = tk.Button(self.frame1, text="Back", command=lambda : self.changePage(self.main_frame))
self.back_button.pack()
#--------------------------------------------------------------------------
#main_Displayrahmen oben
self.main_frame.tkraise()
def changePage(self, page):
'''
Funktion für den Bildschirmübergang
'''
page.tkraise()
if __name__ == "__main__":
app = App()
app.mainloop()
Der Punkt ist der Befehl tkraise. tkraise bringt den angegebenen Rahmen in den Vordergrund. Die Rahmen werden gestapelt und der Rahmen auf der Rückseite wird bei jedem Drücken der Taste gebracht. Die Knöpfe sind super einfach ohne Dekoration.
Ein solches Bild
Die meisten Dinge sind in dem Kommentar im Code geschrieben, aber vorerst,
Erstellen Sie zunächst den Hauptrahmen (main_frame) und den Zielrahmen (frame1).
Platzieren Sie zwei Frames mit der Rastermethode an den Koordinaten (0,0)
Es kann mithilfe eines Rasters gestapelt werden.
Über das Titeletikett gibt es nichts zu sagen.
Das Schaltflächen-Widget gibt die Funktion changePage im Befehl an.
Die Funktion changePage verwendet einen Rahmennamen als Argument.
Übrigens, wenn Sie eine Funktion angeben, die ein Argument (self zählt nicht) im Befehl des Schaltflächen-Widgets verwendet,
command = lambda: function
Muss sein.
Ich habe einen ziemlich kurzen Code daraus gemacht, damit er leicht zu verstehen ist. Das kürzeste, das ich je gesehen habe. Natürlich gibt es eine Möglichkeit, die Seite jedes Mal ohne Verwendung von tkraise ein- und auszublenden, aber ich denke, der einfachste Weg ist tkraise.
Recommended Posts