读取txt文件的内容并在Tkinter GUI Python中显示

时间:2015-06-23 04:43:01

标签: python user-interface tkinter

嘿我已经在python中成功创建了一个tkinter GUI,它将输入的值保存在文本文件中。这是代码:

from Tkinter import *
root = Tk()
def save():
    open("text.txt","w").close()
    text = e.get() + "\n" + e1.get() + "\n" +  e2.get() + "\n"
    with open("text.txt", "a") as f:
        f.write(text)
w1 = Label(root, text="Controller value")
w1.pack()
e = Entry(root)
e.pack()
w2 = Label(root, text="Velocity")
w2.pack()
e1 = Entry(root)
e1.pack()
w3 = Label(root, text="Desired Heading")
w3.pack()
e2 = Entry(root)
e2.pack()
toolbar = Frame(root)
b = Button(toolbar, text="save", width=9, command=save)
b.pack(side=LEFT, padx=2, pady=2)
toolbar.pack(side=TOP, fill=X)
mainloop()

现在我要做的是在GUI中创建3个新文本框,它们将显示文件的内容。例如,我的text.txt文件包含以下内容:

3

2

4

现在我希望这三个值中的每一个都显示在GUI中的3个文本框中。基本上我希望GUI中的第一个文本框显示3,第二个文本框2和第三个文本框4。请帮帮我。

2 个答案:

答案 0 :(得分:1)

我不知道你是否想要这样的东西,但试试:

N

答案 1 :(得分:1)

喜欢这个? 这些变化只是主要功能所以你需要只改变1。

def main():
    root = Tk()
    c = Canvas(root,width=600)
    c.pack(side = 'left',expand=1,fill=BOTH)

    c2 = Canvas(c,width=600)
    c2.pack(side = 'left',expand=1,fill=BOTH)
    c3 = Canvas(c,width=600)
    c3.pack(side = 'left',expand=1,fill=BOTH)

    w1 = Label(c2, text="Controller value")
    w1.pack()
    e = Entry(c2)
    e.pack()
    w2 = Label(c2, text="Velocity")
    w2.pack()
    e1 = Entry(c2)
    e1.pack()
    w3 = Label(c2, text="Desired Heading")
    w3.pack()
    e2 = Entry(c2)
    e2.pack()
    toolbar = Frame(c2)
    b = Button(toolbar, text="save", width=9, command=lambda:save(e,e1,e2))
    b.pack(side='left', padx=2, pady=2)
    toolbar.pack(side=TOP, fill=X)

    lt = Label(c3,text='Controller')
    lt.pack(side='top',expand=1,fill='x')
    l = Label(c3,text='',bg='red')
    l.pack(side='top',expand=1,fill='x')
    lt2 = Label(c3,text='Velocity')
    lt2.pack(side='top',expand=1,fill='x')
    l2 = Label(c3,text='',bg='yellow')
    l2.pack(side='top',expand=1,fill='x')
    lt3 = Label(c3,text='Desired Heading')
    lt3.pack(side='top',expand=1,fill='x')
    l3 = Label(c3,text='',bg='blue')
    l3.pack(side='top',expand=1,fill='x')

    b2 = Button(c3,text='load',command=lambda:loadme(l,l2,l3))
    b2.pack(fill='x', padx=2, pady=2)
    root.mainloop()