Untitled
unknown
plain_text
16 days ago
4.0 kB
4
Indexable
import sqlite3
import tkinter as tk
from tkinter import messagebox, ttk
# Funksioni për të krijuar një lidhje me databazën dhe tabelën
def create_connection():
conn = sqlite3.connect('books.db')
c = conn.cursor()
c.execute('''
CREATE TABLE IF NOT EXISTS books (
id INTEGER PRIMARY KEY,
title TEXT NOT NULL,
author TEXT NOT NULL,
year INTEGER
)
''')
conn.commit()
return conn
# Funksioni për të shtuar një libër të ri
def add_book(conn, title, author, year):
c = conn.cursor()
c.execute('''
INSERT INTO books (title, author, year) VALUES (?, ?, ?)
''', (title, author, year))
conn.commit()
messagebox.showinfo("Sukses", "Libri u shtua me sukses!")
view_books(conn)
# Funksioni për të shfaqur të gjithë librat
def view_books(conn):
c = conn.cursor()
c.execute('SELECT * FROM books')
books = c.fetchall()
for row in tree.get_children():
tree.delete(row)
for book in books:
tree.insert("", "end", values=book)
# Funksioni për të fshirë një libër sipas ID-së
def delete_book(conn, book_id):
c = conn.cursor()
c.execute('DELETE FROM books WHERE id = ?', (book_id,))
conn.commit()
messagebox.showinfo("Sukses", "Libri u fshi me sukses!")
view_books(conn)
# Funksioni për të marrë ID e librit të zgjedhur
def get_selected_book():
selected_item = tree.selection()[0]
return tree.item(selected_item)['values'][0]
def main():
global conn
conn = create_connection()
def on_add():
title = title_entry.get()
author = author_entry.get()
year = year_entry.get()
add_book(conn, title, author, year)
def on_delete():
try:
book_id = get_selected_book()
delete_book(conn, book_id)
except IndexError:
messagebox.showwarning("Kujdes","Zgjidhni një libër për të fshirë!")
root = tk.Tk()
root.title("Menaxhimi i Librave")
input_frame = tk.Frame(root)
input_frame.pack(pady=10)
tk.Label(input_frame, text="Titulli").grid(row=0, column=0)
tk.Label(input_frame, text="Autori").grid(row=1, column=0)
tk.Label(input_frame, text="Viti").grid(row=2, column=0)
title_entry = tk.Entry(input_frame)
author_entry = tk.Entry(input_frame)
year_entry = tk.Entry(input_frame)
title_entry.grid(row=0, column=1)
author_entry.grid(row=1, column=1)
year_entry.grid(row=2, column=1)
add_button =tk.Button(input_frame,text="Shto Libër",
command=on_add)
add_button.grid(row=3, columnspan=2, pady=5)
# Frame për tabelën e librave
tree_frame = tk.Frame(root)
tree_frame.pack()
tree_scroll = tk.Scrollbar(tree_frame)
tree_scroll.pack(side=tk.RIGHT, fill=tk.Y)
global tree
tree = ttk.Treeview(tree_frame,
yscrollcommand=tree_scroll.set,
selectmode="browse")
tree.pack()
tree_scroll.config(command=tree.yview)
tree['columns'] = ("ID", "Titulli", "Autori", "Viti")
tree.column("#0", width=0, stretch=tk.NO)
tree.column("ID", anchor=tk.CENTER, width=50)
tree.column("Titulli", anchor=tk.W, width=200)
tree.column("Autori", anchor=tk.W, width=150)
tree.column("Viti", anchor=tk.CENTER, width=100)
tree.heading("#0", text="", anchor=tk.W)
tree.heading("ID", text="ID", anchor=tk.CENTER)
tree.heading("Titulli", text="Titulli", anchor=tk.W)
tree.heading("Autori", text="Autori", anchor=tk.W)
tree.heading("Viti", text="Viti", anchor=tk.CENTER)
view_books(conn)
delete_button = tk.Button(root, text="Fshi Libër",
command=on_delete)
delete_button.pack(pady=10)
root.mainloop()
if __name__ == '__main__':
main()
Editor is loading...
Leave a Comment