我正在尝试这段简单的代码。它在我使用pack
时运行得更早,但是当我将其更改为grid
时,从控制台调用程序后没有任何内容运行。 python.exe
按照taskManager中的指示继续运行,但不显示任何GUI。请帮忙。
from Tkinter import *
from tkFileDialog import askopenfilename
def fun():
fileName = askopenfilename(parent=top, title='Choose a file')
custName.set(fileName)
root = Tk()
root.geometry('400x150')
root.title('GUI App')
root.resizable(0,0)
top = Frame(root)
bottom = Frame(root)
top.pack(side=TOP)
label = Label(root, text = 'Enter the path upto the file name:')
label.grid(column=0,row=0,sticky='NW')
custName = StringVar(None)
filepath = Entry(root, width ='50', textvariable=custName)
filepath.grid(column=0,row=1,sticky='NW')
browse = Button(root, text="Browse", relief = 'raised', width=8, height=1, command=fun)
browse.grid(column=1,row=1,sticky='E')
quit_button = Button(root, text = 'Exit', relief = 'raised', command = top.quit)
quit_button.grid(column=1,row=3,sticky='SW')
mainloop()
答案 0 :(得分:3)
您忘记在此行中将pack
更改为grid
:
top.pack(side=TOP)
您不能在同一容器中混用pack
和grid
。这样做会导致Tkinter在尝试确定要遵循的几何管理器时进入无限循环。这反过来会阻止窗口的建立,程序似乎会“冻结”。