3

我正在创建一个简单的 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()
4

1 回答 1

1

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

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

于 2012-05-12T11:47:56.637 回答