尝试从控制台运行时Tkinter程序未运行

时间:2014-11-25 17:15:28

标签: python tkinter

我正在尝试这段简单的代码。它在我使用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()

1 个答案:

答案 0 :(得分:3)

您忘记在此行中将pack更改为grid

top.pack(side=TOP)

您不能在同一容器中混用packgrid。这样做会导致Tkinter在尝试确定要遵循的几何管理器时进入无限循环。这反过来会阻止窗口的建立,程序似乎会“冻结”。