我正在尝试使用tkinter在python中创建一个简单的GUI。我想做的是
在条目元素
中显示文件名及其路径def center_window(width, height):
# get screen width and height
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
# calculate position x and y coordinates
x = (screen_width/2) - (width/2)
y = (screen_height/2) - (height/2)
root.geometry('%dx%d+%d+%d' % (width, height, x, y))
def OnButtonClick(self):
self.entryVariable.set( tkinter.filedialog.askopenfilename() )
self.entry.focus_set()
self.entry.selection_range(0, tkinter.END)
root = tkinter.Tk()
center_window(400, 300)
root.title("A simple GUI")
root.entryVariable = tkinter.StringVar()
root.entry = tkinter.Entry(root,textvariable=root.entryVariable)
root.entry.grid(column=10,row=5,columnspan=20)
B = tkinter.Button(root, text ="Choose", command=OnButtonClick(root))
B.grid(column=30,row=5, columnspan=2)
有人可以指导我如何将entry
元素和button
移动到GUI窗口上半部分的中心。另外,如何在单击按钮时调用tkinter.filedialog.askopenfilename()
函数。当我运行上面的代码时,GUI窗口打开后立即调用它。感谢。
答案 0 :(得分:2)
以下是修订后的代码。基本上,您需要将一个函数对象传递给command
的{{1}}参数,这意味着您可以传递一个没有尾部括号的函数(如果它不接受任何参数)或者使用Button
。在您的原始代码中,您的函数在python解释器到达该行后立即执行。此外,您需要在程序结束时调用lambda
。
root.mainloop