【发布时间】:2015-08-04 03:10:49
【问题描述】:
我正在编写一个要求用户输入文件夹名称的 python 脚本。在大多数情况下,默认值就足够了,但我希望出现一个允许用户覆盖默认值的输入框。这是我所拥有的:
from Tkinter import *
import time
def main():
#some stuff
def getFolderName():
master = Tk()
folderName = Entry(master)
folderName.pack()
folderName.insert(END, 'dat' + time.strftime('%m%d%Y'))
folderName.focus_set()
createDirectoryName = folderName.get()
def callback():
global createDirectoryName
createDirectoryName = folderName.get()
return
b = Button(master, text="OK and Close", width=10, command=callback)
b.pack()
mainloop()
return createDirectoryName
getFolderName()
#other stuff happens....
return
if __name__ == '__main__':
main()
我对 tkInter 几乎一无所知,有 2 个问题。
- 在回调函数中使用
global createDirectoryName覆盖默认条目是不是最好的方法? -
如何使按钮在按下时关闭窗口。 我试过了
def callback(): global createDirectoryName createDirectoryName = folderName.get() master.destroy
但这只会在运行脚本时破坏窗口。
【问题讨论】:
-
为什么你所有的函数都是嵌套的?