遇到错误;使用python的Tkinter GUI

时间:2012-05-12 10:10:16

标签: python tkinter

我正在制作一个简单的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()

1 个答案:

答案 0 :(得分:1)

您正在同一主窗口中混合gridpack。你不能这样做。每个人都可能会调整他们管理的小部件的大小,并且每个小部件都会响应他们管理的小部件中的大小调整。因此,pack将调整窗口小部件以适应,网格将识别更改并尝试调整窗口小部件以适应,pack将识别更改并尝试调整窗口小部件以适应,...导致无限循环。

您可以在同一个程序中同时使用packgrid,但不能使用它们来管理同一个容器。