【问题标题】:list with doubleclick results - python tkinter带有双击结果的列表 - python tkinter
【发布时间】:2018-08-28 02:44:21
【问题描述】:

以下代码允许选择使用 制作的树状方案 (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 的所有结果累积到一个列表中,以便以后能够使用通过双击所做的所有选择的集合?

【问题讨论】:

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


【解决方案1】:

只需定义一个存储空列表的属性,然后通过双击附加选择的每个项目。这是代码骨架:

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

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

【讨论】:

    【解决方案2】:

    首先,将列表属性添加到您的App 对象,方法是:

    self.variable = list() # or []
    

    __init__ 内,以便访问对象存在范围内的值。

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

    variable = operacion.calculo(item)
    

    与:

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

    【讨论】:

      猜你喜欢
      • 2013-11-07
      • 1970-01-01
      • 2014-06-07
      • 2013-01-11
      • 2020-09-16
      • 1970-01-01
      • 2021-07-19
      • 1970-01-01
      • 2013-07-30
      相关资源
      最近更新 更多