价值树项目 python tkinter

K. *_*Doe 1 python tkinter

我将 Python 与 Tkinter 结合使用,并且有一个包含多行的树视图。

如何测试该表达式的值:

self.tree.item(self.tree.selection())['values'][0]
Run Code Online (Sandbox Code Playgroud)

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

['values'][0]这个表达式的含义是什么?

谢谢。

Mar*_*ski 6

2020-03-09 更新为 New Mexico Tech 开发文档的 John Shipman 不幸于 2019 年去世,NMT 不再托管他创建的材料。此处有在线存档,此处有 PDF 副本


例如,通读New Mexico Techttk.Treeview文档,您可以使用以下代码创建下面的 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'
Run Code Online (Sandbox Code Playgroud)

树视图_so.png

单击row3突出显示该行,以便tree.item.selection()返回iid所选行的 ,: I003PythonTkinter的文档可以ttk通过 Tk 命令的官方TclTk 文档进行补充,特别是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
Run Code Online (Sandbox Code Playgroud)

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