我试图写一个代码,其中包含多个页面,可以切换到一个按钮时,点击。它最初工作,但我的小部件没有显示,也没有警告或错误消息。第二,使用传统知识和tk.tk?你知道吗
from tkinter import *
import tkinter as tk
class moreTab(tk.Tk):
def __init__(self):
Tk.__init__(self)
self.geometry("1200x600")
container = Frame(self, bg='#c9e3c1')
container.pack(side = "top", fill = 'both', expand = True)
container.grid_rowconfigure(0, weight = 1)
container.grid_columnconfigure(0, weight = 1)
self.frames = {}
for q in (pageone, widget):
frame = q(container,self)
self.frames[q] = frame
frame.place(x= 0,y = 0)
self.raise_frame(pageone)
def raise_frame(self,cont):
frame = self.frames[cont]
frame.tkraise()
class widget(Frame):
def __init__(self, master, control):
Frame.__init__(self, master)
lab = tk.Label(self, text="main page")
lab.place(x = 10, y = 40)
but = tk.Button(self, text='visit start page', command=lambda:
control.raise_frame(pageone))
but.place(x = 10, y = 70)
class pageone(Frame):
def __init__(self, master, control):
Frame.__init__(self,master)
lab = Label(self, text = 'welcome to Game Analysis')
lab.place(x = 10, y = 10)
but = Button(self, text = "Start", command = lambda:
control.raise_frame(widget))
but.place(x = 10, y = 20)
app = moreTab()
app.mainloop()
问题是您使用的是
place()
。使用grid
几何图形管理器。同时使用import tkinter as tk
和from tkinter import *
是没有意义的。使用一个并保持一致。如果您使用后者,您就拥有了所有可用的东西,因此您将编写,比如Button(...)
。但如果使用前者,则必须引用每个小部件,如tk.Button(...)
。你知道吗相关问题 更多 >
编程相关推荐