需要帮助找出如何标记tkinter中不同页面的标题,而不是所有页面都有相同的标题?

时间:2017-06-12 08:25:55

标签: python-3.x tkinter

我是python编程的初学者,我有一个问题。使用下面显示的代码,是否可以为每个类(代表不同的页面)提供不同的标题,而不是一次性对所有页面的标题?我到处寻找,一直无法找到答案。谢谢!

import tkinter as tk
# from tkinter import *
# Activate the line above when a message box is needed


class Start(tk.Tk):
    def __init__(self, *args, **kwargs):
        tk.Tk.__init__(self, *args, **kwargs)
        container = tk.Frame(self)
        container.pack(side="top", fill="both", expand=True)
        self.title("Application")
        container.grid_rowconfigure(0, weight=1)
        container.grid_columnconfigure(0, weight=1)

        self.frames = {}

        for F in (StartPage, PageOne):
            # To add a new page, define the class below and then add the frame to the For Loop above

            frame = F(container, self)

            self.frames[F] = frame

            frame.grid(row=0, column=0, sticky="nsew")

        self.show_frame(StartPage)

    def show_frame(self, controller):
        frame = self.frames[controller]
        frame.tkraise()

    def get_page(self, page_class):
        return self.frames[page_class]
# This is the end of the baseline and the code for each page is below:


class StartPage(tk.Frame):

    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)
        self.controller = controller
        Name = StringVar()
        Password = StringVar()

        def show_credentials(event):
            instructions = tk.Label(self, text="Credentials: ")
            instructions.grid(row=5, column=3, sticky="E")
            names = Name.get()
            passwords = Password.get()
            names = tk.Label(self, text=names, bg="red", fg="white")
            passwords = tk.Label(self, text=passwords, bg="Red", fg="white")
            names.grid(row=6, column=3, sticky="E")
            passwords.grid(row=7, column=3, sticky="E")
        credentials = tk.Button(self, text="Creds")
        credentials.bind("<Button-1>", show_credentials)
        credentials.grid(row=4, column=3, sticky="E")

        def login(event):
            controller.show_frame(PageOne)
        log = tk.Button(self, text="Log In")
        log.bind("<Button-1>", login)
        log.grid(row=4, column=4, sticky="E")
        # A class can be created to compare data entered to a list to identify the user and log him/her in
        welcome = tk.Label(self, text="Welcome!")
        welcome.grid(row=0, column=2, sticky="E")
        username = tk.Label(self, text="Username: ")
        username.grid(row=2, column=2, sticky='E')
        password_label = tk.Label(self, text="Password: ")
        password_label.grid(row=3, column=2, sticky="E")
        username_entry = tk.Entry(self, textvariable=Name)
        username_entry.grid(row=2, column=3, sticky="E")
        password_entry = tk.Entry(self, textvariable=Password, show="*")
        password_entry.grid(row=3, column=3, sticky="E")
        cancel = tk.Button(self, text="Exit", command=quit)
        cancel.grid(row=4, column=2, sticky="E")


class PageOne(tk.Frame):
    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)
        self.controller = controller
        label = tk.Label(self, text="This page is currently under Development")
        label.grid(row=0, column=0, sticky="E")
        switchpage1 = tk.Button(self, text="Back", command=lambda: controller.show_frame(StartPage))
        switchpage1.grid(row=1, column=0, sticky="E")
root = Start()
root.mainloop()

1 个答案:

答案 0 :(得分:0)

这是一种标题不同窗口的方法:

import tkinter as tk

root = tk.Tk()
window1 = tk.Toplevel(root)
window1.wm_title("window 1")

root.mainloop()