需要帮助将我的字符串组合从树视图列放到文本框中



我正试图将Address列中的文本获取到tkinter文本框中,该列包含从mysql获取的字符串组合,但返回错误。有人能帮我吗?

从sql获取

_sql = "SELECT * FROM customers"
_val = None
custs = sql.fetchAll(_sql,_val)
if custs != None:
for i, (id,name,address1,address2,address3,address4,phone,email,birthdate) in enumerate(custs, start=1):
listBox.insert("","end",values=(id,name,address1+", "+address2+", "+address3+", "+address4,phone,email,birthdate))

我的树视图代码:

cols=('ID','Name','Address','Phone','Email','Birthdate')
listBox=ttk.Treeview(listFrame, columns=cols, show='headings',height=36)
for col in cols:
listBox.heading(col, text=col)
listBox.grid(row=1,column=0,columnspan=2)
listBox.column(col,minwidth=0,width=262,stretch=NO,anchor=CENTER)
listBox.place(x=30,y=173)
listBox.bind('<Double-Button-1>',self.selectCust)

文本框代码:

e2=Text(listFrame,fg="#18191b",bg="#fbb913",width=20,borderwidth=0,highlightthickness=0,height=5,wrap=WORD)
e2.place(x=100,y=52)

试图将字符串从地址列插入到文本框:

e2.insert(0,sel['Address'])

错误输出:

Exception in Tkinter callback
Traceback (most recent call last):
File "C:UsersuserAppDataLocalProgramsPythonPython39libtkinter__init__.py", line 1892, in __call__
return self.func(*args)
File "e:AMARADBMSdb.py", line 121, in selectCust
e2.insert(0,sel['Address'])
File "C:UsersuserAppDataLocalProgramsPythonPython39libtkinter__init__.py", line 3743, in insert
self.tk.call((self._w, 'insert', index, chars) + args)
_tkinter.TclError: bad text index "0"

TkinterText对象接受形式为"<line>.<character>"的索引,因此第一行第一个字符将表示为"1.0"。第二行,第一个字符将是"2.0",第四行,第九个字符将为"4.8",依此类推

在这种情况下,您可以将问题行更改为:

e2.insert('1.0', sel['Address'])

TkDocs文本窗口小部件

最新更新