【发布时间】:2014-12-21 18:48:35
【问题描述】:
我想在 Python 2.7 的 Tkinter 中启动“打开文件”对话框。
我的代码以:
开头from Tkinter import Frame, Tk, BOTH, Text, Menu, END
import tkFileDialog as tkfd
import fileinput
root = Tk()
global strTab
strTab = ""
def openTab(event):
r = tkfd.askopenfilename()
strTab = unicodedata.normalize('NFKD', r).encode('ascii','ignore')
稍后在我的代码中:
btnLoadTab = Button(root,
text="Load Tab",
width=30,height=5,
bg="white",fg="black")
btnLoadTab.bind("<Button-1>", openTab)
btnLoadTab.pack()
root.mainloop()
当我按下按钮时,会显示一个“打开文件”对话框,但当我选择一个文件时,它会关闭并且按钮保持“单击”状态。
如果我稍后在
openTab之外调用strTab,它仍然等于“”。
【问题讨论】:
-
请让您的示例可运行。一个小的可运行样本可能看起来过多,但它对获得好的答案大有裨益。
-
您不应该将
bind与按钮一起使用。按钮有一个command属性,专门用于在您单击时调用命令。 -
是的,剩余的“点击”是因为您使用绑定将命令附加到按钮。使用
command属性。 -
您应该删除
global strTab,因为所有全局名称都是自动全局的;-)。