【问题标题】:IndexError: string index out of range - TreeviewIndexError:字符串索引超出范围 - Treeview
【发布时间】:2020-10-16 19:14:03
【问题描述】:

我想在选择特定行时获取第一个值。它看起来很简单,但我没有得到我错过了什么的地方。我在打印语句中获得第一个值,但之后出现以下错误。请帮我解决一下这个。谢谢。

 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()

【问题讨论】:

    标签: python tkinter treeview


    【解决方案1】:

    尝试使用try - except:

    try:
        print(str(curItem['values'][0])) #getting output as 1 but then error
    except:
        pass
    

    【讨论】:

      猜你喜欢
      • 2021-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-26
      • 2012-02-01
      相关资源
      最近更新 更多