Python tkinter将按钮移动到1个窗口而不是2个

时间:2017-09-25 16:25:44

标签: python python-2.7 user-interface tkinter

我的问题是关于Python 2.7 tkinter。困难在于将所有按钮放在一个窗口中,现在它打开2个窗口,一个窗口具有我定义的尺寸,一个窗口具有没有定义尺寸的所有按钮。

    from Tkinter import *

master = Tk()

class Calculator:
    def __init__(self,master):
        self.var = IntVar()
        frame = Frame(master)
        frame.grid()
        f2 = Frame(master,width=500,height=500)
        f2.grid(row=0,column=1)


def callback():
    print("Hello World")

b = Button(master, text="Calc", command=callback)
b.grid()


e = Entry(master, width=10)
e.grid()

e.focus_set()

b1 = Button(master, text = "Ok", width=10, command = callback)
b1.grid(row=20, column=30)


top = Tk()
app = Calculator(top)
mainloop()

1 个答案:

答案 0 :(得分:1)

Tkinter只需要Tk()的一个实例来启动tkinter应用程序和mainloop()的一个实例来管理更新循环。

如果您不止一次致电Tk(),您将遇到多个窗口和事情无法正常工作的问题。

如果您确实需要第二个或更多窗口,则需要使用Toplevel()来创建它们。

如果删除:

top = Tk()

并改变:

app = Calculator(top)

为:

app = Calculator(master)

您将按照预期在一个窗口中包含所有内容。