Kv de bir butona basıp programda bir fonk çalışıyor. 4 buton için programda 4 ayrı fonk var. Tek fonksiyon yapacağım fakat veri tabanında sorgu parametresini oturtamadım.
#program aşağıda.
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.graphics import Color, Rectangle
from kivy.uix.floatlayout import FloatLayout
import sqlite3,os
dosya =’/storage/emulated/0/python/VERİTABANI/Elif_Ders_Çalışma.db’
dosya_mevcut = os.path.exists(dosya)
with sqlite3.connect(dosya) as vt:
im = vt.cursor()
im.execute(""“SELECT * FROM Net_Durum”"")
#vt.close()
class Sinav(App):
def build(self):
duzen = FloatLayout(size=(300,600))
#Aşağıdaki fonksiyonda veritabanı sorgulama
#yaparken LIKE kullanımı sorunu…!!!
#======================================
def KonuMat(self,ders):
im.execute(""“SELECT * FROM Net_Durum”"")
p=ders+"%"
y="’"+p+"’"
im.execute("SELECT * FROM Net_Durum WHERE Ders LIKE 'Mat%' ")
^
|
■■■■■■■■■■》Sorunu ifade ettim.
=====> # sorgulamada “Mat%” değerini .kv den fonksiyona “ders” olarak gönderiyorum… ama LIKE görmüyor. Yukarıda “ders” ile fonksiyona geliyor p=ders+"%" Ve y="’"+p+"’" ile “Mat%” yerine y olarak koyuyorum olmuyor. Bu sorgulamanın bir özelliğimi ? Bunu halledersem aşağıda 3 fonksiyon kalkacak.
■■■■■■■■■■》
self.kontrol(self)
#self.KonuDetay=y
self.root.ids.Konu_Detay.text=self.KonuDetay
self.root.ids.Notu_Detay.text=self.NotlarDetay
return
#====================================
def KonuFen(self):
im.execute("""SELECT * FROM Net_Durum""")
im.execute("SELECT * FROM Net_Durum WHERE Ders LIKE 'Fen%'")
self.kontrol(self)
self.root.ids.Konu_Detay.text=self.KonuDetay
self.root.ids.Notu_Detay.text=self.NotlarDetay
def KonuTur(self):
im.execute("""SELECT * FROM Net_Durum""")
im.execute("SELECT * FROM Net_Durum WHERE Ders LIKE 'Türkçe%'")
self.kontrol(self)
self.root.ids.Konu_Detay.text=self.KonuDetay
self.root.ids.Notu_Detay.text=self.NotlarDetay
def KonuSos(self):
im.execute("""SELECT * FROM Net_Durum""")
im.execute("SELECT * FROM Net_Durum WHERE Ders LIKE 'Sosyal%'")
self.kontrol(self)
self.root.ids.Konu_Detay.text=self.KonuDetay
self.root.ids.Notu_Detay.text=self.NotlarDetay
def kontrol(self, text):
self.veriler=im.fetchall()
s=1
v=[]
self.KonuDetay=""
self.NotlarDetay=""
for veri in self.veriler:
for puan in veri:
if len(puan)<4:
u=3-len(puan)
v=v+["0"*u+puan]
if len(veri[2]) >35:
u=35-len(veri[2])
v2=veri[2]+" "*u
else:
v2=veri[2]
self.konular =" - "+v2
self.notlar=veri[0]+" "*9+v[0]+" "*13+v[1]+" "*9+v[2]+" "*5+v[3]
self.KonuDetay= self.KonuDetay+ self.konular+"\n"
self.NotlarDetay= self.NotlarDetay+ self.notlar+"\n"
s+=1
for i in range(13-s):
self.KonuDetay= self.KonuDetay+ " "*75+"\n"
self.NotlarDetay= self.NotlarDetay+ " "*50+"\n"
return self.KonuDetay,self.NotlarDetay
Sinav().run()
Program yukarıda aşağıda da .kv bağlantısı var.
#Sinav.kv
FloatLayout:
orientation: “horizantal”
Label:
id: baslik
markup: True
text:“Sınav Sonuç Takibi”
color:“red”
font_size:100
size_hint:(.3, .2)
pos: (400,1900)
FloatLayout:
Button:
id: Mat
markup: True
text:"Matematik"
color:"white"
background_color: "cyan"
font_size:"15sp"
halign : "center"
#color : [0,.9,.3,1]
bold: True
#italic:True
#underline:True
line_height : 2
size_hint:(.23, .05)
pos: (1,1900)
on_press: app.KonuMat("Mat")
■■■■■■■■■■■■■■■■■■■■■》
butona basıldığında gidip fonksiyona “Mat” değerini arttırıp veri tabanında Matematik dersi sonuçlarını listeleyecek. Normalde her buton ayrı fonksiyonda çalışıyor ama
KonuMat
KonuFen
KonuTur
KonuSos
olarak 4 fonsiyon yerine tek fonksiyon ile yapmak.
■■■■■■■■■■■■》
Button:
id: Fen
markup: True
text:"FenBilgisi"
color:"white"
background_color: "cyan"
font_size:"15sp"
halign : "center"
#color : [0,.9,.3,1]
bold: True
#italic:True
#underline:True
line_height : 2
size_hint:(.24, .05)
pos: (265,1900)
on_press: app.KonuFen()
Button:
id: Tur
markup: True
text:"Türkçe"
color:"white"
background_color: "cyan"
font_size:"15sp"
halign : "center"
#color : [0,.9,.3,1]
bold: True
#italic:True
#underline:True
line_height : 2
size_hint:(.17, .05)
pos: (540,1900)
on_press: app.KonuTur()
Button:
id: Sos
markup: True
text:"SosyalBilgiler"
color:"white"
background_color: "cyan"
font_size:"15sp"
halign : "center"
#color : [0,.9,.3,1]
bold: True
#italic:True
#underline:True
line_height : 2
size_hint:(.33, .05)
pos: (740,1900)
on_press: app.KonuSos()
Label:
id: konu
text: 'Konular :'
color: "cyan"
pos: (1,1600)
bold: True
size_hint:(.25,.2)
font_size:70
FloatLayout:
Label:
id: Konu_Detay
text: ''
color: "lightyellow"
size_hint: (1,1)
pos: (-170,270)
bold: True
font_size: 50
FloatLayout:
Label:
id: tarih
text: '| | Tarih '
color: "orange"
size_hint:(.15, .2)
pos: (1,600)
bold:True
underline: True
font_size:60
Label:
id: soru
text: '| Soru Adet '
color: "lightgreen"
size_hint: (.25, .2)
pos: (310,600)
bold: True
underline: True
font_size:60
Label:
id: dogru
text: '|Doğru '
color:"yellow"
size_hint: (.2, .2)
pos: (570,600)
bold:True
underline:True
font_size:60
Label:
id: yanlis
text: '|Yanlış '
color: "red"
size_hint: (.2, .2)
pos: (750,600)
bold: True
underline: True
font_size: 60
Label:
id: bos
text: '|Boş'
color:"cyan"
size_hint:(.15, .2)
pos: (930,600)
bold: True
underline: True
font_size: 60
FloatLayout:
Label:
id: Notu_Detay
text: ''
color: "lightyellow"
size_hint: (1,1)
pos: (-10,-720)
bold: True
underline: False
font_size:50