【发布时间】:2021-04-10 18:55:45
【问题描述】:
我会尽量举例说明。
我正在开发一个程序,其中我将数据记录在 database.db 中,并通过 SQLite3 库访问它。我创建了一个函数来返回我想要的特定列的数据,它将是几个带有返回数据的标签。
在这个程序中,我使用.pack() 方法,并且我知道如果我使用pack_forget() 命令,Label 将随着我进行的每个新查询从窗口中删除。
问题是,由于每个返回的数据都有几个标签,所以我没有为每个标签创建名称,现在我遇到了这个问题。对于每次搜索,我想删除最新搜索的所有标签。如果标签没有变量名,如何从窗口中删除它们。下面是一个例子:
def clear():
# ???
Label.pack_forget()
def search(v):
# 'v' cames from Entry's textvariable
tmp4Label = []
var4Len = list(c.execute(
f'SELECT * FROM table WHERE element = "{v.get()}"').fetchall())
for i in range(len(var4Len)):
# Getting just the first column data
#'c' is the cursor
a.append(list(c.execute(
f'SELECT * FROM table WHERE element = "{v.get()}"').fetchall())[i][0])
for i in tmp4Label:
# Labels for each data, removing '[' and ']' characters
Label(root, text=f"{str([i]).replace('[', '').replace(']', '')}",font=('Arial 18 bold')).pack()
【问题讨论】:
标签: python sqlite tkinter label