23-08-2018, Saat: 17:26
Kivy de aşşagıdaki gibi bir şey yapmaya çalışdım ama çalışmadı. Yapmak istedigim şey main2 sınıfındaki numeric property veriyi app sınında basmak istiyorum, kısaca 2 tane sayac var biri azalıyor biri artıyor bu degerler hangi tuşa basılırsa (artma veya eksiltme) o andaki sayıyı veri tabanına kaydediyor sonra her geldiginde tekrar temizleyip takrar kaydediyor program bir sayıda son buldugunda tekrar açıldıgında o sayıdan başlaması için build fonksşyonuna yazdım ama çalışmadı.
KODLAR;
KODLAR;
PHP Kod:
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.properties import NumericProperty
import sqlite3
con = sqlite3.connect("sayilar.db")
cursor = con.cursor()
cursor.execute("CREATE TABLE IF NOT EXISTS sayilar (sayi INT, sayi2 INT)")
con.commit()
Builder.load_string("""
<main2>:
BoxLayout:
orientation: "vertical"
Label:
id: lbl
font_size: sp(25)
Label:
id: lbl2
font_size: sp(25)
BoxLayout:
Button:
text: "ARTTİR"
on_press: root.arttir()
Button:
text: "AZALT"
on_press: root.azalt()
""")
class main2(Screen):
sayi = NumericProperty(0)
sayi2 = NumericProperty(100)
def arttir(self):
cursor.execute("DELETE FROM sayilar")
self.sayi += 1
self.sayi2 -= 1
cursor.execute("INSERT INTO sayilar VALUES(?,?)",(self.sayi, self.sayi2))
con.commit()
self.ids.lbl.text = str(self.sayi)
self.ids.lbl2.text = str(self.sayi2)
cursor.execute("Select * From sayilar")
liste = cursor.fetchall()
for i in liste:
print(i)
def azalt(self):
cursor.execute("DELETE FROM sayilar")
self.sayi -= 1
self.sayi2 += 1
cursor.execute("INSERT INTO sayilar VALUES(?,?)",(self.sayi, self.sayi2))
con.commit()
self.ids.lbl.text = str(self.sayi)
self.ids.lbl2.text = str(self.sayi2)
cursor.execute("Select * From sayilar")
liste = cursor.fetchall()
for i in liste:
print(i)
sm = ScreenManager()
sm.add_widget(main2(name = "main2"))
class main(App):
def build(self):
sm.screens[0].ids.lbl.text = self.sayi
sm.screens[0].ids.lbl2.text = self.sayi2
return sm
main().run()