【问题标题】:delete a former label tk python删除以前的标签 tk python
【发布时间】:2014-02-15 21:13:16
【问题描述】:

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

应用程序从用户那里获取信息,然后将这些信息放在屏幕上(例如姓名、年龄、部门)

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

*****

如果用户插入了一些原始数据,我希望他能够删除他想要的每一行,并将已删除行下的行向上移动一行(这样我就不会从已删除的行中得到一个“洞”行)

问题是,在 tk 中创建了几个 Labes 后,你不知道用户删除了哪些 Label。 有没有办法从被破坏的标签中获取信息?比如数字?

谢谢

【问题讨论】:

  • 你不知道用户删除了什么标签是什么意思?您正在编写让他们删除它的代码,您为什么不知道?

标签: python button tkinter label tk


【解决方案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() 将每秒(1000 毫秒)重新调用该函数,因此您无需担心间隙。

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

我会这样做

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-01
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    相关资源
    最近更新 更多