I am trying to get the text inside my Address column which contains a combination of string fetched from mysql into the tkinter text box but it returns error. Can anyone help me?
fetching from 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))
my treeview code:
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)
textbox code:
e2=Text(listFrame,fg="#18191b",bg="#fbb913",width=20,borderwidth=0,highlightthickness=0,height=5,wrap=WORD)
e2.place(x=100,y=52)
trying to insert strings from address column to textbox:
e2.insert(0,sel['Address'])
error output:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 1892, in __call__
return self.func(*args)
File "e:\AMAR\ADBMS\db.py", line 121, in selectCust
e2.insert(0,sel['Address'])
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 3743, in insert
self.tk.call((self._w, 'insert', index, chars) args)
_tkinter.TclError: bad text index "0"
CodePudding user response:
Tkinter Text objects accept indexes in the form "<line>.<character>", so the first line, first character would be represented as "1.0". The second line, first character would be "2.0", the fourth line, ninth character would be "4.8" and so on.
In this case, you could change the problem line to:
e2.insert('1.0', sel['Address'])
