from tkinter import *
from tkinter import ttk
import sqlite3
class Kütüphane:
database='kütüphane.db'
def __init__(self,pencere):
self.pencere = pencere
self.pencere.resizable(width=FALSE,height=FALSE)
self.pencere.title('Kütüphane Programı')
frame=LabelFrame(self.pencere,text='Kayıt Bölümü')
frame.grid(row=0,column=1)
Etiket1 = Label(frame,text='Kitap Adı:').grid(row=1,column=1)
self.Giris = Entry(frame)
self.Giris.grid(row=1,column=2)
Etiket1 = Label(frame, text='Yazar Adı:').grid(row=2, column=1)
self.yazargiris = Entry(frame)
self.yazargiris.grid(row=2, column=2)
Etiket1 = Label(frame, text='Begenme_Durumu:').grid(row=3, column=1)
self.Begenme_Durumu = Entry(frame)
self.Begenme_Durumu.grid(row=3, column=2)
ttk.Button(frame,text='Yeni Kayıt',command=self.kayit2).grid(row=4,column=2)
self.message = Label(text='',fg='red')
self.message.grid(row=4,column=0)
#self.tree kısmında columns ifadesi bizim sütüunlarımızın adlarını temsil ediyor
self.tree = ttk.Treeview(height=10,columns=('B','C','D'))
#Treeview kısmına Scrollbar ekledik(kaydırma adı altında,baglanti da yapıldı)
kaydirma = ttk.Scrollbar(orient='vertical', command=self.tree.yview)
self.tree.configure(yscrollcommand=kaydirma.set)
self.tree.grid(row=5,column=0,columnspan=30)
self.tree.heading('#0', text='Kitap No', anchor='w')
self.tree.heading('B',text='Kitap Adı',anchor='w')
self.tree.heading('C', text='Yazar Adı', anchor='w')
self.tree.heading('D', text='Begenme Durumu', anchor='w')
ttk.Button(text='Kayıt Düzenle').grid(row=6,column=15)
ttk.Button(text='Kayıt Sil',command=self.silme).grid(row=6, column=14)
Etiket1 = Label(pencere, text='By Furkan DAĞ').place(relx=0.88, rely=0.94)
self.kayit_gorüntü()
def baglanti(self,sira,parametre=()):
with sqlite3.connect(self.database) as con:
cursor = con.cursor()
sira_sonuc=cursor.execute(sira,parametre)
con.commit()
return sira_sonuc
def kayit_gorüntü(self):
kayitlar=self.tree.get_children()
for element in kayitlar:
self.tree.delete(element)
sira = 'Select * from Kitaplar order by Kitap_No desc'
database_sutun = self.baglanti(sira)
for sutun in database_sutun:
#Normalde insert yapınca sütunlar gelmiyor ama sutun[1:4] gibi beliritnce tüm sutunlar geliyor
self.tree.insert('',0,text=sutun[0],values=sutun[1:4])
#......................Yeni kayıtla ilgili bölüme geçiyoruz.......
def kayit(self):
return len (self.Giris.get () ) !=0 and len(self.yazargiris.get()) !=0 and len(self.Begenme_Durumu.get()) !=0
def kayit2(self):
if self.kayit():
sira='insert into Kitaplar values (NULL,?,?,?)'
parametre=(self.Giris.get(),self.yazargiris.get(),self.Begenme_Durumu.get())
self.baglanti(sira,parametre)
self.message['text'] = 'Kayıt {} eklendi'.format(self.Giris.get())
self.message['fg']='blue'
self.Giris.delete(0,END)
self.yazargiris.delete(0,END)
self.Begenme_Durumu.delete(0,END)
else:
self.message['text']='Bilgileri girilmemiş satır mevcut'
self.message['fg'] = 'red'
self.kayit_gorüntü()
#Kayıt Silme işlemini yapıyoruz
def silme(self):
self.message['text'] = ''
try:
self.tree.item(self.tree.selection())['values'][0]
except IndexError as e:
self.message['text'] = 'Kayıt seçiniz'
return
self.message['text'] = ''
isim=self.tree.item(self.tree.selection())['text']
sira = 'Delete * from Kitaplar Where Kitap_Adi = ?'
self.baglanti(sira,(isim, ))
self.message['text'] = '{} Kaydınız silinmiştir'.format(isim)
self.kayit_gorüntü()
if __name__=='__main__':
pencere = Tk()
application = Kütüphane(pencere)
pencere.mainloop()
Aldığım hatada şu şekilde