• Buradasın

    Python ile Not Defteri Uygulaması Geliştirme Eğitimi

    youtube.com/watch?v=EVqFFHiv1yo

    Yapay zekadan makale özeti

    • Bu video, bir eğitmen tarafından sunulan Python programlama dili ile not defteri uygulaması geliştirme eğitimidir. Eğitmen, izleyicilere adım adım kodlama sürecini göstermektedir.
    • Video, temel bir not defteri uygulamasının geliştirilmesini kapsamaktadır. Uygulama, not ekleme, düzenleme, silme ve hava durumu gösterme özelliklerine sahiptir. Eğitmen, Tkinter kütüphanesi kullanarak arayüzü tasarlamakta, Open Wieder Map API'si ile hava durumu verilerini çekmektedir ve dosya işlemleri ile notları kaydetmekte, düzenlemekte ve silebilmektedir.
    • Eğitim yaklaşık iki saat sürmekte olup, her bir özellik için ayrı bölümler bulunmaktadır. Video boyunca kod satırları detaylı olarak açıklanmakta, hata ayıklama süreçleri gösterilmekte ve uygulamanın kullanıcı dostu olması için arayüz düzenlemeleri yapılmaktadır. Ayrıca, internet bağlantısı olmadığında hata mesajı gösterme, uyarı mesajları ve log dosyası oluşturma gibi pratik özellikler de eklenmektedir.
    00:07Python ile Not Defteri Uygulaması - Devam
    • Önceki videoda tasarlanan not defteri uygulamasının kodlanması yapılacak.
    • Uygulamada hava durumu yazdırılacak, tarih zaten gösteriliyor.
    • Ekle butonu ile kayıt işlemleri, düzenleme, okuma ve silme işlemleri yapılacak.
    01:46Hava Durumu API'si Alma
    • Hava durumu için Open Wieder Map sitesinden API alınması gerekiyor.
    • Siteye giriş yapıp hesap oluşturarak API alımı yapılabilir.
    • API, sayılarla oluşan bir hash değeri şeklinde verilir.
    04:07Hava Durumu Verilerini Çekme
    • API ile şehir ismi ve JSON parametreleri kullanılarak hava durumu verileri çekilecek.
    • Request modülü kullanılarak API'ye istek gönderilecek.
    • JSON verilerinden şehir ismi, ülke adı, sıcaklık ve hava durumu bilgileri alınacak.
    07:35Sıcaklık Hesaplama ve Veri Toplama
    • Sıcaklık verisi için eksi 273.15 değerinden çıkarak doğru sıcaklık hesaplanacak.
    • Hava durumu bilgileri bir değişkene düzenli olarak toplanacak.
    • Süslü parantezler kullanılarak veriler formatlanacak.
    10:50Hava Durumu Yazdırma
    • Hava durumu bilgilerini "weather text" label'ına yazdırmak için kod bloğu kopyalanıp yapıştırılıyor.
    • Hava durumu değişkeninin değerini "weather text" label'ına atayarak hava durumu bilgileri yazdırılıyor.
    • Tarih ve gün bilgilerini düzgün göstermek için font boyutu 14'ten 12'ye düşürüldü.
    13:27İnternet Bağlantısı Hatası Çözümü
    • İnternet bağlantısı olmadığında hata vermemesi için "try except" komutları kullanılıyor.
    • "try" bloğunda hava durumu bilgileri yazdırılıyor, "except" bloğunda ise "Internet yok" yazısı gösteriliyor.
    • İnternet bağlantısı kapatıldığında "except" bloğu çalışıyor ve "Internet yok" mesajı görüntüleniyor.
    17:14Not Ekleme Butonu İşlev Kazandırma
    • Not ekleme butonuna "command" özelliği eklenerek "add_note" fonksiyonu tanımlanıyor.
    • "add_note" fonksiyonunda yeni bir frame oluşturuluyor ve bu frame'e gri arka plan veriliyor.
    • Frame'in konumu belirleniyor: x=0.30, y=0.20, width=0.70, height=0.10.
    20:01Not Ekleme Arayüzü Tasarımı
    • Not ekleme arayüzünde başlık label'ı, giriş alanı ve tarih ekleme alanı oluşturuluyor.
    • Başlık label'ı için gri arka plan, beyaz yazı rengi ve 12 puan kalın yazı tipi kullanılıyor.
    • Tarih ekleme alanı için date entry widget'i kullanılıyor ve el ile girilmesi yerine otomatik tarih gösterimi planlanıyor.
    26:29Tkinter ile Tarih Seçme Alanı Oluşturma
    • Tkinter kütüphanesinde date entry (tarih seçme) alanı oluşturuluyor.
    • Kütüphane tanımlanmamış olduğunda "date entry is not definite" hatası alınıyor.
    • Kütüphane tanımlamak için "from tkcalendar import DateEntry" kodu kullanılıyor.
    28:58Kaydet Butonu Ekleme
    • Kaydet butonu ekleniyor: "save_btn = Button(frame1, background='green', foreground='white', text='Kaydet')".
    • Butonun pack() metodu ile yerleşimi belirleniyor.
    • Butonun konumu ve boyutu ayarlanıyor.
    31:16Not Alanı Oluşturma
    • İkinci bir frame (frame2) oluşturuluyor ve yerleşimi belirleniyor.
    • Not alanı için text widget ekleniyor: "not = Text(frame2, width=20, height=15, background='white', foreground='black')".
    • Not alanının yazı tipi ve stil ayarlanıyor.
    36:31Not Kaydetme Fonksiyonu
    • Kaydet butonuna tıklandığında çalışacak fonksiyon tanımlanıyor.
    • Fonksiyonda başlık, tarih ve not içeriği alınıyor.
    • Notlar "mynotes" adlı klasöre kaydediliyor.
    41:42Hata Mesajları
    • Başarılı kaydedildiğinde bilgi mesajı gösteriliyor: "messagebox.showinfo('Başarılı', 'Notunuz başarıyla kaydedildi')".
    • Başlık girilmediğinde uyarı mesajı gösteriliyor: "messagebox.showwarning('Başlık', 'Lütfen notunuza başlık ekleyiniz')".
    42:52Log Dosyası Oluşturma
    • Log dosyası oluşturuluyor ve notların başlıkları bu dosyaya kaydediliyor.
    • Log dosyası "L" klasörüne "notlar.txt" adıyla ekleme modunda açılıyor.
    • Notun başlığı log dosyasına yazdırılıyor ve dosya kapatılıyor.
    44:56Not Listeleme Fonksiyonu
    • Kaydedilen notları listelemek için log dosyası okuma modunda açılıyor.
    • Dosyadan okunan veriler for döngüsüyle satır satır okunuyor ve ekrana yazdırılıyor.
    • Listeyi görüntülemek için scroll komutu kullanılıyor.
    47:45Arayüz Düzenlemesi
    • Notlar olmadığı zaman butonların havaya doğru kalkmaması için frameler ayarlanıyor.
    • Butonlar için yeni bir frame oluşturuluyor ve butonların konumu ayarlanıyor.
    • Butonlar artık notlar kısmı boş olsa bile yerinde duracak şekilde düzenleniyor.
    52:26Çarpı Butonu Ekleme
    • Not ekleme panelinde çarpı butonu ekleniyor.
    • Çarpı butonu, paneli kapatmak için kullanılıyor.
    • Buton kırmızı renkte ve çarpı emojisi ile tasarlanıyor.
    57:42Not Düzenleme Fonksiyonu
    • Not düzenleme butonu ekleniyor ve işlev kazandırılıyor.
    • Düzenleme paneli için yeni bir frame oluşturuluyor.
    • Kullanıcının seçtiği notun başlığı ve içeriği okunuyor.
    1:02:36Dosya Okuma ve Düzenleme Uygulaması
    • Kodda dosyadan okunan verileri yazdırmak için "else" bloğu ekleniyor.
    • "Frame 5" adında yeni bir pencere oluşturuluyor ve içinde uyarı mesajı gösteren bir label ekleniyor.
    • Uyarı mesajı "Lütfen okumak veya düzenlemek istediğiniz notu seçiniz" şeklinde ve kırmızı renkte gösteriliyor.
    1:05:01Hata Çözümleme ve Fonksiyon Tanımlama
    • Kodda "badlist box index bound metot selection of object frame active anchor" hatası alınıyor ve bu hatayı çözmek için "try-except" bloğu kullanılıyor.
    • "okuma İşlemi" adında bir fonksiyon tanımlanıyor ve "from tkinter import messagebox" kütüphanesi ekleniyor.
    • "edit_not" fonksiyonunda "t = okuma İşlemi()" şeklinde fonksiyon çağrısı yapılıyor.
    1:09:31Edit Modu Ekleme
    • "Frame 3" altına "mode label" adında bir label ekleniyor ve "OKUMA MODU AÇIK" yazısı gösteriliyor.
    • "Edit" butonu ekleniyor ve "edit_mode" adında bir fonksiyon tanımlanıyor.
    • "Save" butonu ekleniyor ve "save" adında bir fonksiyon tanımlanıyor.
    1:16:10Dosya Düzenleme İşlemi
    • "Save" fonksiyonunda, seçilen dosyanın adı alınıyor ve düzenlenecek dosya açılıyor.
    • Edit alanından alınan veriler "al" adlı değişkene atılıyor ve dosyaya yazdırılıyor.
    • Dosya kaydedildikten sonra "edit_mode" fonksiyonu içinde dosya okuma ve düzenleme işlemleri yapılıyor.
    1:22:14Düzenleme Modu Sorunlarının Çözümü
    • Düzenleme işlemi başarılı olarak kontrol ediliyor ve hava durumu fonksiyonu çalışmaya devam ediyor.
    • Edit moduna geçildiğinde buton sorunu için "save btn" ve "edit btn" değişkenleri kullanılarak çözüm bulunuyor.
    • Edit moduna geçildiğinde butonların gizlenmesi ve "save" butonunun düzgün çalışması sağlanıyor.
    1:24:12Çıkış Butonu Ekleme
    • Save butonunun altına çıkış butonu ekleniyor ve kırmızı renkli bir buton oluşturuluyor.
    • Çıkış butonu için "kapat" fonksiyonu tanımlanıyor ve panel yerleştiriliyor.
    • Edit butonuna basıldığında çıkış butonunun gizlenmesi ve alttaki frame'in kapanması sağlanıyor.
    1:28:18Okuma Modu Butonu Ekleme
    • Edit butonunun altına okuma modu için yeni bir buton ekleniyor.
    • Okuma modu butonu için "çıkış panel" fonksiyonu tanımlanıyor ve panel yerleştiriliyor.
    • Edit modu ve okuma modu butonlarının işlevleri test ediliyor ve düzgün çalıştığı kontrol ediliyor.
    1:32:12Kaydet Butonu Mesajı Ekleme
    • Kaydet butonuna basıldığında "not düzenlendi" mesajı gösterilmesi için label ekleniyor.
    • Label için "not düzenlendi" metni, gri arka plan, beyaz ön plan ve sans serif 12 volt yazı tipi ayarlanıyor.
    • Düzenleme bölümü tamamlanıyor ve testler gerçekleştiriliyor.
    1:35:02Silme Butonu Ekleme
    • Silme butonu için "not sil" komutu ekleniyor.
    • "not sil" fonksiyonu tanımlanıyor ve silinecek not listeden alınıyor.
    • "os" kütüphanesi import edilerek dosya silme işlemi gerçekleştiriliyor.
    1:38:20Not Silme Fonksiyonu Yazma
    • Program, notları silmek için "mynote list" adlı bir yazı modunda açılıyor.
    • Silinecek satır için "core selection" değişkeni oluşturuluyor.
    • "long dosyasının" içine girip satırı silerek listeden görünmemesini sağlıyoruz.
    1:39:36Dosya Düzenleme ve Hata Yönetimi
    • For döngüsü kullanılarak satırlar kontrol ediliyor ve silinecek satır bulunuyor.
    • Dosya tekrar yazdırılarak silme işlemi gerçekleştiriliyor.
    • Try-except bloğu eklenerek hata yönetimi yapılıyor ve seçim yapılmadığında uyarı mesajı gösteriliyor.
    1:42:03Uygulamanın Test Edilmesi
    • Uygulama çalıştırılıyor ve internet bağlantısı olmadığı için hava durumu bilgisi görüntülenmiyor.
    • Not ekleme, okuma, düzenleme ve silme işlemlerinin sorunsuz çalıştığı test ediliyor.
    • İnternet bağlantısı açıldığında hava durumu bilgisi (İzmir, 15 derece, parçalı bulutlu) görüntüleniyor.
    1:44:39Projenin Sonuçlanması
    • Not ekleme, düzenleme ve silme işlevleri başarıyla eklendi.
    • Uygulama, not defteri olarak basit bir proje olarak tamamlanıyor.
    • Dosya indirme linki açıklamada bulunacak ve GitHub hesabından indirilebilecek.

    Yanıtı değerlendir

  • Yazeka sinir ağı makaleleri veya videoları özetliyor