删除以前的标签tk python

时间:2014-02-15 21:13:17

标签: python button tkinter label tk

使用python开发一个使用Tkinter模块的应用程序,但我有一个问题我无法解决。

应用程序从用户获取信息,然后放置此信息并将其放在屏幕上(例如姓名,年龄,部门)

*****
Name     Age     Department
joni      21     system
Noam      37     electronics

*****

如果用户插入了一些原始内容,我希望他能够删除他想要的每一行,并删除删除行下面的行以上一行(所以我不会从删除的那个“漏洞”线)

事实是,在tk中创建一些Labes之后,你不知道用户删除了什么标签。 有没有办法从销毁的标签中获取信息?比如数字?

感谢

1 个答案:

答案 0 :(得分:1)

您可以通过将信息存储在类中来实现此目的,例如:

class foo: 
    def __init__(self, name, age, department):
       self.name = name
       self.age = age
       self.department = department

然后在您的主程序中,您可以列出此类的实例列表

import foo
refFoo = []

#get user input and store in variables name, age, dept

refFoo.append(foo.foo(name, age, dept))

然后将其复制到您的工作清单

Foo = list(refFoo)

然后你可以删除Foo中的项目,保持refFoo中的所有项目不变。

显示类似

的呼叫
def displayItems(Foo):
    numOfItems = len(Foo)

    print("Name\tAge\tDepartment")

    for i in numOfItems:
        print(Foo[i].name, '\t',  Foo[i].age, '\t', Foo[i].department)

    after(1000, displayItems(Foo) #displays up to date list

after()将每秒(1000ms)重新调用该函数,因此您不必担心间隙。

我没有测试过这段代码,但它应该可行。

这就是我这样做的方式