我不能在Mac上使用Tkinter中的grid
函数来支持Python 3。每当我尝试运行它时,IDLE停止响应并且我必须退出它,但是当我使用.pack()
函数时它运行良好。
from tkinter import *
class MainWindow:
def __init__(self):
window = Tk()
frame = Frame(window, width=600, height=800)
frame.pack(expand=True)
btframe = Frame(window)
btframe.pack(side=BOTTOM, expand=True)
self.intro = Label(frame, text="Welcome to your personal email client", font =("Courier", 20, "bold"))
self.name = Label(frame, text="\nName",foreground="red", font=("Helvetica",16,"bold"))
self.password = Label(frame, text="\nPassword", foreground="blue", font=("Helvetica",16,"bold"))
self.entry1 = Entry(frame)
self.entry2 = Entry(frame)
self.intro.pack()
self.name.grid(row=1, column=2)
self.entry1.grid(row=1, column=3)
self.password.grid(row=3, column=2)
self.entry2.grid(row=3, column=3)
self.submitB = Button(btframe, text="Submit", command= self.display)
self.quitB = Button(btframe, text="Quit", command=window.destroy)
self.submitB.pack()
self.quitB.pack()
window.mainloop()
def display(self):
print("Submitted Succesfully")
MainWindow()
答案 0 :(得分:0)
这是因为您尝试在共享同一父级的小部件上使用grid
和pack
。具体来说,您使用的pack
用于self.intro
,网格用于self.name
,但它们都共享frame
的公共父级。
使用其中一个,而不是两个。您可以同时使用两者,但仅限于小部件不共享共同父级时。