Python Lab
Python Lab
Creates a
table, inserts records, and retrieves data from a database.
Displays the data in a GUI window using Tkinter. Threads the
database operation to keep the GUI responsive.
import sqlite3
import tkinter as tk
import threading
# Database setup
def setup_database():
conn = sqlite3.connect('example.db')
c = conn.cursor()
('Alice', 30),
('Bob', 25),
('Charlie', 35)''')
conn.commit()
conn.close()
def fetch_data():
conn = sqlite3.connect('example.db')
c = conn.cursor()
rows = c.fetchall()
conn.close()
return rows
def update_gui(tree):
for i in tree.get_children():
tree.delete(i)
def threaded_fetch(tree):
threading.Thread(target=lambda: update_gui(tree)).start()
class App(tk.Tk):
def __init__(self):
super().__init__()
self.geometry("400x300")
self.tree = ttk.Treeview(self, columns=('ID', 'Name', 'Age'), show='headings')
self.tree.heading('ID', text='ID')
self.tree.heading('Name', text='Name')
self.tree.heading('Age', text='Age')
self.tree.pack(expand=True, fill=tk.BOTH)
self.refresh_button.pack()
if __name__ == "__main__":
setup_database()
app = App()
threaded_fetch(app.tree)
app.mainloop()