-2
私がpythonを使って作業しているのは初めてです。私は電話帳を作っています。デフ私は(「」)name.setいる追加でPython、電話帳
enter code here
from tkinter import*
def delete():
select=listbox.curselection()
index=select[0]
listbox.delete(index)
def add():
name=entry1.get()
telephone=entry2.get()
name.set("")
telephone.set("")
listbox.insert(END, name+ ': ' + telephone)
if name=="":
labelError=Label(frame1, text="Name is empty", fg="red")
labelError.grid(columnspan=2)
if telephone=="":
labelError2=Label(frame1, text="Telephone is empty", fg="red")
labelError2.grid(columnspan=2)
def save():
list1=list(listbox.get(0,END))
f=open("output.txt", "w")
f.writelines(str(list1))
f.close()
wn=Tk()
wn.geometry("400x350")
wn.title("Telephone")
frame1=Frame(wn)
frame2=Frame(wn)
frame1.pack()
frame2.pack()
label1=Label(frame1, text="List of contacts", font="Calibre 30")
label1.grid(row=0, columnspan=2)
label2=Label(frame1, text="Name:", font="Calibre 18")
label2.grid(row=1, column=0)
label3=Label(frame1, text="Telephone:", font="Calibre 18")
label3.grid(row=2, column=0)
name=StringVar()
entry1=Entry(frame1,textvariable=name)
entry1.grid(row=1, column=1)
telephone=StringVar()
entry2=Entry(frame1,textvariable=telephone)
entry2.grid(row=2, column=1)
scrollbar=Scrollbar(frame2, orient=VERTICAL)
listbox=Listbox(frame2, selectmode=EXTENDED, yscrollcommand=scrollbar.set,width=40)
listbox.grid(row=3, columnspan=3)
scrollbar.config(command=listbox)
button1=Button(frame2, text="Add", width=15, height=1, command=add)
button1.grid(row=5, column=0)
button2=Button(frame2, text="Delete", width=15, height=1, command=delete)
button2.grid(row=5, column=1)
button3=Button(frame2, text="Save to file", width=15, height=1, command=save)
button3.grid(row=5, column=2)
wn.mainloop()
私はそれを実行しようとしたとき、私は、このエラーが発生しました:
enter code here
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python34\lib\tkinter\__init__.py", line 1533, in __call__
return self.func(*args)
File "C:\Users\Sana\Desktop\Sana\python\telephone.py", line 11, in add
name.set("")
AttributeError: 'str' object has no attribute 'set'
私は私の名前はSTRINGVARであることを書きましたが、strだけではありません。私に何ができる? また、私は自分のリストボックスを編集したいのですが、実行中に1つの文字列(名前+電話)を選択して編集することを意味します。 ところで、私はname.set( "")cuzと書いた。新しい連絡先を追加するたびに自分のエントリーを空にしたい。
'name = entry1.get()'それを文字列に設定しています。後でコードで行うことは重要ではありません。この時点で、 'name'は' entry1.get() 'の戻り値に等しくなります。これはこの場合の文字列です。 –