使用python开发一个使用Tkinter模块的应用程序,但我有一个问题我无法解决。
应用程序从用户获取信息,然后放置此信息并将其放在屏幕上(例如姓名,年龄,部门)
*****
Name Age Department
joni 21 system
Noam 37 electronics
*****
如果用户插入了一些原始内容,我希望他能够删除他想要的每一行,并删除删除行下面的行以上一行(所以我不会从删除的那个“漏洞”线)
事实是,在tk中创建一些Labes之后,你不知道用户删除了什么标签。 有没有办法从销毁的标签中获取信息?比如数字?感谢
答案 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)重新调用该函数,因此您不必担心间隙。
我没有测试过这段代码,但它应该可行。
这就是我这样做的方式