值树项python tkinter

时间:2016-03-20 22:10:23

标签: python tkinter

我使用Python和Tkinter,我有一个有几行的树视图。

如何测试此表达式的值:

self.tree.item(self.tree.selection())['values'][0]

例如,我想验证上面的表达式不为空或为空,我该怎么办?

这个表达式中的['values'][0]是什么意思?

感谢。

1 个答案:

答案 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'

treeview_so.png

点击row3会突出显示该行,以便tree.item.selection()返回所选行的iid I003。在这种情况下,Python Tkinterttk的文档可以由官方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

因此,在交互式会话中阅读文档,创建完整示例和测试命令的组合应该可以回答您的问题。

相关问题