如何在tkinter页面上获取整个sqlite3查询

时间:2018-11-20 00:53:08

标签: python tkinter sqlite

我正在制作一个程序,您可以在其中搜索名称,并且sqlite3数据库中的所有内容都会显示出来。

def search():
tk = Tk()
tk.geometry('500x500')
labe = Label(tk, text="Search all: fullname, major, gender, class one, class two, class three")
labe.pack()
ent = Entry(tk, bd=5)
ent.pack()
def dog():
    getted = ent.get()
    conn = sqlite3.connect('friend.db')
    if getted == "fullname":
        with conn:
            cursor = conn.cursor()
        cursor.execute('SELECT name1 FROM Photos')
        conn.commit()
        result = cursor.fetchall()
        for r in result:
            tkee = Tk()
            tkee.geometry('500x500')
            lab = Label(tkee, text=r)
            lab.pack()
            tkee.mainloop()

buty = Button(tk, text="Submit", command=dog)
buty.pack()

当我输入我想要所有全名的程序时,程序运行正常,但幻灯片上只出现一个名字。直到我退出所有其他选项卡,其他名称才会显示出来。如果有人知道如何做到这一点,将不胜感激。谢谢,贾马尔

1 个答案:

答案 0 :(得分:0)

发生的问题是您正在使用for循环。

result = cursor.fetchall()
for r in result:
        tkee = Tk()
        tkee.geometry('500x500')
        lab = Label(tkee, text=r)
        lab.pack()
        tkee.mainloop()

如果仅将其更改为

result = cursor.fetchall()
tkee = Tk()
tkee.geometry('500x500')
lab = Label(tkee, text=result)
lab.pack()
tkee.mainloop()

然后它将起作用