带有双击结果的列表 - python tkinter

时间:2018-03-19 13:53:29

标签: python python-3.x list tkinter double-click

以下代码允许选择使用制作的树状方案(ttk.Treeview)的不同文件。下面的variable输出提供了对每个选定文件执行的特定操作的结果:

import tkinter as tk
from tkinter import ttk

class App():
    def __init__(self):
        self.root = tk.Tk()

        self.treeview = ttk.Treeview()
        self.treeview.pack()

        sobreitem1 = self.treeview.insert("", tk.END, text="A")
        item0_1 = self.treeview.insert(sobreitem1, tk.END, text="1")
        item1_1 = self.treeview.insert(sobreitem1, tk.END, text="2")
        item2_1 = self.treeview.insert(sobreitem1, tk.END, text="3")
        item3_1 = self.treeview.insert(sobreitem1, tk.END, text="4")

        self.treeview.bind("<Double-1>", self.OnDoubleClick)
        self.root.mainloop()



    def OnDoubleClick(self, event):
        item = self.treeview.selection()[0]

        import operacion
        variable = operacion.calculo(item)



if __name__ == "__main__":
    app = App()

我存在的疑问是如何在列表中累积variable的所有结果,以便以后能够使用双击所做的所有选择的集合?

2 个答案:

答案 0 :(得分:1)

只需定义一个存储空列表的属性,然后追加双击选中的每个项目。这是代码框架:

...
def __init__(self):
    ...
    self.variables = []
    ...

def OnDoubleClick(self, event):
    ...
    self.variables.append(operacion.calculo(item))
    ...

答案 1 :(得分:1)

首先,通过添加:

将list属性添加到App对象
self.variable = list() # or []

__init__内,以便能够访问对象所在范围内的值。

然后修改OnDoubleClick以便追加(而非分配)到新使用的self.variable。替换:

variable = operacion.calculo(item)

使用:

self.variable.append(operacion.calculo(item))