IndexError: string index out of range - Treeview
IndexError: string index out of range - Treeview
我想在选择特定行时获取第一个值。它看起来很简单,但我没有得到我错过的东西。我在打印语句中得到第一个值,但之后出现以下错误。请帮我解决一下这个。谢谢。
1
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\Python\Python38\lib\tkinter\__init__.py", line 1883, in __call__
return self.func(*args)
File "C:\Users\Desktop\select.py", line 31, in on_tree_select
print(str(curItem['values'][0]))
IndexError: string index out of range
示例代码:
from tkinter import ttk
import tkinter
import threading
def main():
root = tkinter.Tk()
ccols = ('num1','num2')
treeview = ttk.Treeview(root, columns=ccols)
for col in ccols:
treeview.heading(col, text=col)
treeview.grid(row=8, column=0)
def sample():
indexes = [treeview.index(id) for id in treeview.selection()]
for i in range(2):
treeview.delete(*treeview.get_children())
treeview.insert("", "end", values=(i,0))
for idx in indexes:
child_id = treeview.get_children()[idx]
treeview.selection_add(child_id)
threading.Timer(4.0, sample).start()
def on_tree_select( event):
curItem = treeview.item(treeview.focus())
print(str(curItem['values'][0])) #getting output as 1 but then error
treeview.bind("<<TreeviewSelect>>", on_tree_select)
sample()
root.mainloop()
if __name__ == '__main__':
main()
尝试使用try - except
:
try:
print(str(curItem['values'][0])) #getting output as 1 but then error
except:
pass
我想在选择特定行时获取第一个值。它看起来很简单,但我没有得到我错过的东西。我在打印语句中得到第一个值,但之后出现以下错误。请帮我解决一下这个。谢谢。
1
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\Python\Python38\lib\tkinter\__init__.py", line 1883, in __call__
return self.func(*args)
File "C:\Users\Desktop\select.py", line 31, in on_tree_select
print(str(curItem['values'][0]))
IndexError: string index out of range
示例代码:
from tkinter import ttk
import tkinter
import threading
def main():
root = tkinter.Tk()
ccols = ('num1','num2')
treeview = ttk.Treeview(root, columns=ccols)
for col in ccols:
treeview.heading(col, text=col)
treeview.grid(row=8, column=0)
def sample():
indexes = [treeview.index(id) for id in treeview.selection()]
for i in range(2):
treeview.delete(*treeview.get_children())
treeview.insert("", "end", values=(i,0))
for idx in indexes:
child_id = treeview.get_children()[idx]
treeview.selection_add(child_id)
threading.Timer(4.0, sample).start()
def on_tree_select( event):
curItem = treeview.item(treeview.focus())
print(str(curItem['values'][0])) #getting output as 1 but then error
treeview.bind("<<TreeviewSelect>>", on_tree_select)
sample()
root.mainloop()
if __name__ == '__main__':
main()
尝试使用try - except
:
try:
print(str(curItem['values'][0])) #getting output as 1 but then error
except:
pass