链接多个帧的Python GUI

2024-06-25 23:03:01 发布

您现在位置:Python中文网/ 问答频道 /正文

非常新的与图形用户界面的工作,所以我想知道是否有人可以给我一些指导,如何链接多个帧,这样你就可以按一个按钮转到该帧。你知道吗

太好了!你知道吗

from tkinter import *

class main(Frame):
   def __init__(self, master=None):
       super(main, self).__init__(master)    
       self.grid()
       self.pack()
   def buttons_dash():
      # create first button
       self.bttn1_dash = Button(self, text = "Student Login",)
       self.bttn1_dash.grid()
       self.bttn1_dash.config(height=3, width=30)

       # create second button
       self.bttn2_dash = Button(self)
       self.bttn2_dash.grid()   
       self.bttn2_dash.configure(text = "Staff Login")
       self.bttn2_dash.config(height=3, width=30)

       # create third button
       self.bttn3_dash = Button(self)
       self.bttn3_dash.grid()
       self.bttn3_dash["text"] = "Exit"
       self.bttn3_dash.config(height=3, width=30)
       self.bttn3_dash = Button(self, text= "Exit")

class student_dashboard(Frame):
      def __init__(self, master=None):
       super(main, self).__init__(master)    
       self.grid()
       self.pack()
      def buttons_student():
       #create first button
       self.bttn1_student = Button(self, text = "View Highscores")
       self.bttn1_student.grid()
       self.bttn1_student.config(height=3, width=30)

       # create second button
       self.bttn2_student = Button(self)
       self.bttn2_student.grid()    
       self.bttn2_student.configure(text = "Save Score")
       self.bttn2_student.config(height=3, width=30)

# main
root = Tk()
root.title("Dashboard")
app = main(root)
root.mainloop()

Tags: textselfconfigmaincreatebuttonwidthstudent
1条回答
网友
1楼 · 发布于 2024-06-25 23:03:01

你可以在你的主类中创建一个按钮,用一个命令调用一个包含嵌套类和新tkinter框架的函数,然后你就有了一个嵌套的顶层。你知道吗

import tkinter as tk
class main:
    def __init__(self, root1):
        self.root1=root1
        self.frame1=tk.Frame(root1)
        self.button_spawn_top=tk.Button(text="spawn_frame",
        command=self.new_window)
        self.button_spawn_top.grid(row=0,column=0)
        self.frame1.grid(row=0,column=0)
    def new_window(self):
        class NewWindow:
            def __init__(self, root2):
                self.root2=root2
                self.frame2=tk.Frame(root2)
                self.label2=tk.Label(text='new_window')
                self.label2.grid(row=0,column=0)
                self.frame2.grid(row=0,column=0)
        root2=tk.Toplevel()
        app2=NewWindow(root2)
root1=tk.Tk()
app1=main(root1)
root1.mainloop()

相关问题 更多 >