我正在考虑使用一个简单的、目前很难看的、用Tkinter构建的GUI来获取用户的两个变量。即文件路径和下拉列表(选项菜单)中的选项。在
选择的变量将在稍后的Python脚本中使用,这正是我遇到困难的地方。简单地说,如何将用户的选择分配给变量:载体、路径。在
示例代码请参见以下内容:
from Tkinter import *
from tkFileDialog import askopenfilename
def Choose_Path():
Tk().withdraw()
return askopenfilename()
root = Tk()
root.geometry('400x400')
root.configure(background='#A2B5CD')
C_Label = Label(root, text='Carrier Choice:', bg='#A2B5CD', fg='black',font=('Calibri', 12))
C_Label.grid(row=0,sticky=W, padx =10)
I_Label = Label(root, text='Invoice Path:', bg='#A2B5CD', fg='black',font=('Calibri', 12))
I_Label.grid(row=1, sticky=W, padx =10)
var = StringVar(root)
var.set('Choose Carrier...')
option = OptionMenu(root, var, 'DHL','DPD','DX','Fedex','Geodis','Hermes','WN Direct')
option.config(relief=RAISED, highlightbackground='#A2B5CD')
option.grid(row=0,column=1, sticky=W, pady = 10)
browser = Button(root, text = 'Browse Invoice...', command=Choose_Path)
browser.grid(row=1, column=1, sticky=W, pady=10)
Button(root, text='Accept and Close').grid(column=1, sticky=S)
root.mainloop()
如有任何反馈,我们将不胜感激。提前谢谢。在
通过综合你的反馈和一个额外的功能,我现在似乎得到了我需要的结果。看看下面的样子。在
谢谢你的帮助!+1
两个问题:
你要结束你的循环。从您调用
root.mainloop()
的那一刻起,在您关闭Tk窗口之前,当前程序不会向下一行(您没有,但我假设您将在您的最终程序中)前进。在-主循环结束后,您需要在某个地方有变量值。目前,})。在
option
对象(它是一个OptionMenu
实例)将包含值if你的载体,所以你可以做类似option.get()
的操作。 文件名稍微复杂一些,因为您没有将其存储在某处:从Choose_Path()
返回它,但是返回值没有存储在任何地方。可能你必须将这个值存储在一个全局中。(这种存储必须发生在Choose_Path
内,例如FileName = askopenfilename()
而不是{相关问题 更多 >
编程相关推荐