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.
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.
Builder.load_file("calisma.kv")
class ekran(GridLayout):
pass
class uygulama(App):
def build(self):
return ekran()
if __name__ =="__main__":
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
<ekran>:
cols: 2
Label:
text: "Kullanici Adi"
color: 1,0,0,1
TextInput:
multiline: False
Label:
text: "Sifre"
color: 0,1,0,1
TextInput:
multiline: False
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,1yani 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.