-1

该代码旨在将一些内容写入文本文件中的一行。

from tkinter import *
Tag=0
x="txt.txt"
w=open(x,"w")
root=Tk()
win1=Frame(root)
Label(root,text="Tag").pack()
tagE=Entry(root)
tagE.pack()
def get_it():                    
    Tag=(tagE.get())                                                                       
v=Button(root,text="Submit",command=get_it)
v.pack()
win1.pack()
w.write("%s var=%s"%(Tag,"text"))
w.close()
root.mainloop()

Tag=(tagE.get()) 缩进的空格多于实际。当我运行此代码时,我将得到一个“AttributError:'NoneType' 对象没有属性'get',或者标签值将等于其原始值 0。非常感谢帮助。

4

2 回答 2

1

除了获取条目的值之外,您还必须将值写入文件中的同一函数中:

from tkinter import *

filename = "txt.txt"
root=Tk()
Label(root,text="Tag").pack()
tagE=Entry(root)
tagE.pack()

def get_it():
    w=open(filename, "w")
    tag = tagE.get()
    w.write("%s var=%s"%(tag,"text"))
    w.close()

v=Button(root,text="Submit",command=get_it)
v.pack()
root.mainloop()

由于您不使用Frame 任何小部件的父级,您可以直接使用根元素。作为旁注,我建议您按照PEP8中的建议对变量使用小写符号,并尝试使用更清晰的名称。

于 2013-03-30T23:04:28.483 回答
0

你误解了 Tkinter 的工作原理。您的打印语句将在您有机会单击按钮之前执行。您需要将您的打印语句放入get_it.

于 2013-03-30T17:46:11.097 回答