Python ve Kivy ile Uygulama Geliştirme – 3

Categories python kivyPosted on
teknopenguen kivy uygulama

Kivy ile uygulama geliştirme derslerimizin üçüncüsünden herkese merhaba. Bu derste 2. dersimizde yapyığımız login uygulamamızı .kv uzantılı kivy’nin tasarım dili ile (kivy language) yapacağız.

Öncelikle iki tane dosya oluşturuyoruz ve bunların birinin adına calisma.py diğerine ise calisma.kv diyoruz. Dosyalarımızın aynı dizinde olmasına dikkat edelim.

Önce ana dosyamız olan calisma.py yi düzenleyelim.

 

  1. <code>from kivy.app import App</code>
  2. <code>from kivy.uix.gridlayout import GridLayout</code>
  3. <code>from kivy.lang import Builder</code>

Sınıflarımızı dahil ediyoruz. Burayı önceki derslerimizden biliyorsunuz burada tanımadığımız yapı Builder sınıfı. Bu sınıf kv dosyalarımızı uygulamamıza dahil etmemizi sağlayan yapıdır. Eğer tasırım kodlarımız bir dosya içinde ise Builder.load_file(“dosya ad”) yapısını kullanıyoruz. Eğer kodlarımız bir string ifade içine yazılmışsa yani calisma.py dosyamızın içinde,

    stringadı = “””

    tasarım kodlarımız 

     “””

şeklinde ise Builder.load_string (“stringadı”) şeklinde ekleyebiliriz. 

  1. Builder.load_file("calisma.kv")
  2.  
  3. class ekran(GridLayout):
  4. pass
  5.  
  6. class uygulama(App):
  7.  
  8. def build(self):
  9.  
  10. return ekran()
  11.  
  12. if __name__ == "__main__":
  13.  
  14. uygulama().run()

calisma.py dosyamızın içeriği. Burada gördüğünüz gibi herhangi bir eleman eklenmemiş uygulamamıza. 

Ekran adında bir sınıf var ve içeriği boş. Çünkü içeriğimiz calisma.kv dosyamızda. O dosyamızı nasıl dahil ettiğimize dikkat edin. Burada dikkat etmemiz gereken diğer bir nokta da ekran sınıfımızda kullandığımız “pass” ifadesi. Bu sınıfın içeriği başka bir dosyamızda olduğu için çalıştırdığımızda sınıf içeriği boş hatası alırız. İşte bu sıkıntıyı yaşamamak için pass yapısını kullandık.

Şimdi gelelim calisma.kv dosyamızın içeriğine

  1. <ekran>:
  2. cols: 2
  3.  
  4. Label:
  5. text: "Kullanici Adi"
  6. color: 1,0,0,1
  7. TextInput:
  8. multiline: False
  9. Label:
  10. text: "Sifre"
  11. color: 0,1,0,1
  12. TextInput:
  13. multiline: False
  14. password: True

Burada ekran sınıfını düzenleyeceğim için öncelikle ilk satırda bunu belirttik. Bu sınıfımız gridlayout sınıfını miras aldığı için cols parametresini yani sütun sayısını belirttik. Daha sonra gerekli label ve textinput yapılarımızı ekledik. Girintileme sistemi burada da önemlidir. Label dedikten sonra yapılan girintiler o labelın özelliklerini belirttiğimiz anlamına gelir

Label:                         text: “Kullanici Adi”                         color: 1,0,0,1 yani bu satırda Label ana yapı text ve color da bu yapının özelliklerini belirten evlat yapılar diyebiliriz. Burada renk için kullandığımız yapı rgba yapısıdır. Red  , Green,  Blue 1     ,     0   ,    0  ,    1 0 ile 1 arasında değer alırlar 1 o rengin tamamen var olduğunu gösteriri. Ensondaki sayı ise görünürlüğü ifade eder burada 1 kırmızı rengin hiç karartılmadan gösterildiği anlamına gelir. Tüm bu yaptıklarımızdan sonra eğer sizde aşağıdaki sonucu elde etmişseniz doğru yapmışsınız demektir eğer bir hata ile karşılaştı iseniz videomuzu izleyerek nerede hata yaptığınızı anlayabilirsiniz.
avatar