如何解决在tkinter中,当我运行搜索并将结果显示为新标签时,如何从一个功能中删除标签?
我有一个函数,当我的窗口第一次弹出时显示表中的数据:
def query():
conn = sqlite3.connect('movie_catalog.db')
# Create cursor
c = conn.cursor()
# Query the database
c.execute("SELECT *,oid FROM movies ORDER BY title ASC")
records = c.fetchall()
for index,x in enumerate(records):
num = 0
for y in x:
query_label = Label(root,text=y)
query_label.grid(row=index + 2,column=num,pady=2)
num += 1
# Commit our changes
conn.commit()
# Close database connection
conn.close()
我正在运行循环,以使表中的每一行数据在窗口的新行中显示。但是,当我运行以下搜索功能时,我希望它们消失:
def search_movies():
# Create a database or connect to one
conn = sqlite3.connect('movie_catalog.db')
# Create cursor
c = conn.cursor()
selected = drop.get()
if selected == "Search by":
test = Label(root,text="Please make a selection")
test.grid(row=0,column=6)
if selected == "Title":
sql = "SELECT * FROM movies WHERE title=?"
if selected == "Year":
sql = "SELECT * FROM movies WHERE year=?"
if selected == "Genre":
sql = "SELECT * FROM movies WHERE genre=?"
if selected == "Director":
sql = "SELECT * FROM movies WHERE director=?"
if selected == "Cast":
sql = "SELECT * FROM movies WHERE cast=?"
if selected == "Tags":
sql = "SELECT * FROM movies WHERE tags=?"
searched = search_box.get()
caps = searched.title()
t = (caps,)
result = c.execute(sql,t)
result = c.fetchall()
if result:
for index,x in enumerate(result):
num = 0
for y in x:
searched_label = Label(root,text=y)
searched_label.grid(row=index + 2,pady=2)
num += 1
if not result:
no_result = Label(root,text="Movie not found")
no_result.grid(row=2,column=2)
# Commit our changes
conn.commit()
# Close database connection
conn.close()
此搜索功能实质上是设置为以与第一个功能相同的格式显示结果,但是我需要原始标签消失,因为我的搜索结果与它们重叠。有没有办法从第一个函数中破坏显示?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。