我正在制作一个简单的Tkinter gui。然而,似乎有些事情会变得混乱。实际上没有任何东西被“打包”到框架上。谁能发现我做错了什么? (除了使用'from Tkinter import *'引起的问题,以及显然无用的'do_nothing()'函数。
#/usr/bin/python
from Tkinter import *
class gui:
def __init__(self, parent):
f = Frame(parent, width=300, height=500)
f.pack(padx=30, pady=15)
self.label = Label(f, text="Japanese Trainer")
self.label.pack(side=TOP, padx=10, pady=12)
self.txtlbl = Entry(f, justify=CENTER, text="", font=("Calibri", 15, "bold"), width=37)
self.txtlbl.pack()
self.txtlbl.grid(row=1, rowspan=2, sticky=E, pady=10, padx=40)
self.button0 = Button(f, text="Kana Trainer", width=20, command=self.do_nothing)
self.button0.pack()
self.button0.grid(row=3, rowspan=2, sticky=W, pady=10, padx=40)
self.button1 = Button(f, text="Vocab Trainer", width=20, command=self.do_nothing)
self.button1.pack()
self.button1.grid(row=3, rowspan=2, sticky=E, pady=10, padx=40)
def do_nothing(self):
self.txtlbl.delete(0, END)
self.txtlbl.insert(END, "Command did nothing...")
root = Tk()
root.title('Eg.')
app = gui(root)
root.mainloop()
答案 0 :(得分:1)
您正在同一主窗口中混合grid
和pack
。你不能这样做。每个人都可能会调整他们管理的小部件的大小,并且每个小部件都会响应他们管理的小部件中的大小调整。因此,pack将调整窗口小部件以适应,网格将识别更改并尝试调整窗口小部件以适应,pack将识别更改并尝试调整窗口小部件以适应,...导致无限循环。
您可以在同一个程序中同时使用pack
和grid
,但不能使用它们来管理同一个容器。