[PYTHON] Bildschirmumschaltung / Bildschirmübergang mit Tkinter

Bildschirmumschaltung mit Tkinter

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.

Code

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()

Grober Kommentar

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.

Illustriert

Ein solches Bild コメント 2020-01-26 202500.png

Ausführliche Erklärung

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.

Ende

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

Bildschirmumschaltung / Bildschirmübergang mit Tkinter
[Entwicklungsumgebung] Python mit Xcode [Mit Bildschirmübergang]
MVC mit Tkinter
Werde mit Tkinter Weihnachtsmann
Programmieren mit Python und Tkinter
Einführung in Tkinter 2: Button
Arbeiten Sie mit tkinter und Maus
[Python] Erstellen Sie mit tkinter einen Bildschirm zur Datei- und Ordnerpfadspezifikation
Erstellen Sie den Image Viewer mit Tkinter
Führen Sie Label mit tkinter [Python] aus.
Ich habe den BMI mit tkinter gemessen
Teilen Sie den Bildschirm mit Keyhac in 3 Teile
Erstellen Sie eine Bildlaufrolle mit Pythonista + -Szene
Holen Sie sich Web-Screen-Capture mit Python
Einfache GUI App mit Tkinter Text
Async / warte mit Kivy und tkinter
[Tkinter] Steuert Threads mit Ereignisobjekt
[Python] Erstellen mehrerer Fenster mit Tkinter