Python Tkinter - 文本输入和文件打开输入

时间:2014-02-19 20:58:28

标签: python tkinter

我是初学者,我知道我不能遵循正确的编码程序。 我将所有功能都放在一个文件中,并且我已将四个参数传递给此文件, 但我真的需要用户输入。 我无法弄清楚如何从用户那里获得四个参数。 我添加了用户的建议,但我仍然没有得到我正在寻找的数据

我正在使用Winpython 2.7.5。

我想获得三个在独立版本中运行的字符串,如在stackoverflow上发布的那样。 How do I print and have user input in a text box in tkinter, Python 3.2.5?

然后我希望用户打开一个文件对话框并选择一个文本文件,类似于 filedialog, tkinter and opening files

如果我使用下面的代码,那么我无法访问文件名的返回值

import Tkinter, tkFileDialog

def myDialog():
    root = Tkinter.Tk()
    results = []

    label1 = Tkinter.Label( root, text="Header")
    E1 = Tkinter.Entry(root, bd =5)

    label2 = Tkinter.Label( root, text="Machine Name")
    E2 = Tkinter.Entry(root, bd =5)

    label3 = Tkinter.Label( root, text="final filename")
    E3 = Tkinter.Entry(root, bd =5)

    def getDate():
        results.append(E1.get())
        results.append(E2.get())
        results.append(E3.get())
        root.destroy() # close the window


    def getFile():
        results.append(tkFileDialog.askopenfilename())

    submit = Tkinter.Button(root, text ="Submit", command = getDate)
    openfiledialog = Tkinter.Button(root, text ="Open File", command = getFile)

    label1.pack()
    E1.pack()
    label2.pack()
    E2.pack()
    label3.pack()
    E3.pack()
    submit.pack(side =Tkinter.LEFT)
    openfiledialog.pack(side =Tkinter.RIGHT)
    root.mainloop() # the mainloop is used to paint the gui and react on input
    return results

checkresults = []
checkresults = myDialog

1 个答案:

答案 0 :(得分:0)

我认为你几乎就是你想做的事情:

def myDialog():
    root = Tk()
    results = []

    label1 = Label( root, text="Header")
    E1 = Entry(root, bd =5)

    label2 = Label( root, text="Machine Name")
    E2 = Entry(root, bd =5)

    label3 = Label( root, text="final filename")
    E3 = Entry(root, bd =5)

    def getDate():
        results.append(E1.get())
        results.append(E2.get())
        results.append(E3.get())
        root.quit() # end the mainloop
        root.destroy() # close the window

    submit = Button(root, text ="Submit", command = getDate)

    label1.pack()
    E1.pack()
    label2.pack()
    E2.pack()
    label3.pack()
    E3.pack()
    submit.pack(side =BOTTOM)
    root.mainloop() # the mainloop is used to paint the gui and react on input
    return results

这个myDialog会打开你编写的对话框并在提交时关闭它。