3. Bölüm - TelDef.py(Kişi Sil Butonu)
Pardus-Linux.org | Wiki sitesinden
Sıradaki dersimize hoşgeldiniz... Bu derste ilk dersten hatırlayacağınız Kişi Sil butonunun işlevini anlatacağım. İlk önce hangi işletim sistemi üzerindeyseniz o sistemde bulunan metin editörünü açınız ve TelDef.py dosyasını inceliyerek ve geçen dersten kalan kodları bir kenarda hazır tutarak hazır olun.
Şimdi geçen dersten kalan kodlarımızın bulunduğu dosyamızı açıyoruz ve hemen derse başlıyoruz. Kişi Sil butonunun hangi fonksyionu çağırdığını bir görelim.
Sil = Button(text=u"Kişi Sil", command=Sil, font="DejaVuSans 8") Sil.place(width=60, x=30, relx=0.0, rely=0.3)
command=Sil ifadesinden Sil() fonksiyonunu çağırdığını anlıyoruz. Bakalım bu Sil() fonksiyonu ne işe yarıyormuş:
def Sil():
UyariSil()
global Rehber1
SilListe.delete(0, END)
Rehber1 = shelve.open("tdphone.td")
Listem = Rehber1.keys()
SilListe.place(relx=0.3, rely=0.1, width=150, height=175)
for i in Listem:
SilListe.insert(0, i)
Bak1["text"] = u"Çıkar"
Bak1.place(relx= 0.7, rely=0.1, x=25, width=60)
Kodlara bakacak olursak Rehber1 adında diğer fonksiyonlar içinde de kullanabileceiğimiz bir değişken yaratmışız.
SilListe = Listbox(bg="light gray", font="DejaVuSans 9 bold") ListeBar1 = Scrollbar(SilListe, orient=VERTICAL, command=SilListe.yview) SilListe.configure(yscrollcommand = ListeBar1.set) ListeBar1.pack(side=RIGHT, fill=BOTH)
Bu kodlar sayesinde bu fonksiyon içinde bir Listbox yaratıp içindebir şey yazılıysa silinmesini sağladık ve Rehber1 değişkeninin değeri olaran tdphone.td dosyasını açtık. Rehber1.keys() ile Listbox içerisinde, for döngüsü yardımıyla rehberde bulunan anahtarları sıraladık. Yan tarafında da Çıkar adında bir buton yerleştirdik.
Şimdi Çıkar adlı butona ne komut atamışız ona bakalım...
Bak1 = Button(text="", font="DejaVuSans 8", command=Bakici)
Anlaşıldığı gibi Bakici() fonksiyonunu çalıştırmasını sağlamışız. Şimdi de Bakici() fonksiyonuna bakalım:
def Bakici():
KisiLab.place_forget()
Bak1.place_forget()
Bak2["text"] = u"Evet"
Bak2.place(relx= 0.6, rely=0.3, x=25, width=60)
Bak3["text"] = u"Hayir"
Bak3.place(relx= 0.8, rely=0.3, x=25, width=60)
UyariB["text"] = u"Seçiminizi Onaylıyormusunuz?"
UyariB.place(relx= 0.6, rely=0.1, x=20)
Bu fonksiyonu incelediğimizde bu işleme onay verdikten sonra çıkan mesajı tekrar buraya tıkladığımızda silinmesi için "KisiLab.place_forget()" kodu ve çıkar butonunun silinmesini sağlıyoruz. Bunların yerine Uyari mesajı ve evet/hayır butonlarıyla bir seçim yapılmasını istiyoruz. Bakalım bu evet ve hayır butonlarına ne atamışız:
Bak2 = Button(text="", font="DejaVuSans 8", command=kisisil) Bak3 = Button(text="", font="DejaVuSans 8", command=Sill)
Kodları gördük. Şimdi bu kodlarla çağrılan kalan 2 fonksiyonumuzu inceliyelim. Hayır butonuna basıldığında Sil() fonksiyonuyla aynı olan Sill() fonksiyonu nu çalıştırıyoruz, eğer evet dersek ise;
def kisisil():
sirala = SilListe.get(ACTIVE)
del Rehber1["%s"%sirala]
SilListe.delete(ACTIVE)
KisiLab["text"] = u"Seçiminiz Silindi"
KisiLab.place(relx= 0.7, rely=0.4, x=20)
Rehber1.close()
Sill()
fonksiyonu çalışıyor. Bu kodların anlamı ise; Listboxta seçtiğimiz kişiyi "del Rehber1" ile rehberden siliyoruz ve Seçiminiz Silindi diye uyarı verdirtiyoruz ve tekrar Kişi Sil ekranına döndrüyoruz. Bunu da Sill() fonksiyonu sağlıyor...
Bu dersimiz burada tamamlanıyor. 4. dersimizde görüşmek üzere...
Önceki Ders: 2._Bölüm_-_TelDef.py(Kişi_Ekle_Butonu)
Sonraki Ders: 4. Bölüm - TelDef.py (Listele Butonu)
