我使用Python和Tkinter,我有一个有几行的树视图。
如何测试此表达式的值:
self.tree.item(self.tree.selection())['values'][0]
例如,我想验证上面的表达式不为空或为空,我该怎么办?
这个表达式中的['values'][0]
是什么意思?
感谢。
答案 0 :(得分:1)
例如,通过New Mexico Tech ttk.Treeview
docs阅读,您可以使用以下代码在下面创建3 x 3树视图。
>>> import Tkinter
>>> import ttk
>>> root = Tk()
>>> root = Tkinter.Tk()
>>> master = Tkinter.Frame(root)
>>> master.pack()
>>> tree = ttk.Treeview(master, columns=['col A','col B','col C'])
>>> tree.pack()
>>> row1 = tree.insert("",index=0,text="row1",values=['A1','B1','C1'])
>>> row1 # 'I001'
>>> row2 = tree.insert("",index=0,text="row2",values=['A2','B2','C2'])
>>> row2 # 'I002'
>>> row3 = tree.insert("",index=0,text="row3",values=['A3','B3','C3'])
>>> row3 # 'I003'
点击row3
会突出显示该行,以便tree.item.selection()
返回所选行的iid
即:I003
。在这种情况下,Python Tkinter
和ttk
的文档可以由官方TclTk Documentation of Tk Commands和特别ttk::treeview
完成,我们在那里读到selection
:
返回所选项目列表
现在我们可以测试OP的代码段了。
>>> tree.selection() # ('I003',)
>>> tree.item(tree.selection())
# {'image': '',
# 'open': 0,
# 'tags': '',
# 'text': 'row3',
# 'values': [u'A3', u'B3', u'C3']}
>>> tree.item(tree.selection())['values'] # [u'A3', u'B3', u'C3']
>>> tree.item(tree.selection())['values'][0] # u'A3'
>>> if tree.item(tree.selection())['values'][0]:
... # test for zero, empty string or None
... pass # do stuff
因此,在交互式会话中阅读文档,创建完整示例和测试命令的组合应该可以回答您的问题。