yazdığın koddan hiç bişey anlamadım. örnek bi tane kod yazdım. bunun üstünden git sende. Biraz fazla oldu galiba Şimdi bak kodlar öle alt alta yazılmaz. Farklı dosyalara(classlara) ayırmak gerekiyor. Bu şekilde olduğunda hem kafa karışıklığı olmuyor. Ne nerde belli yani. 2. olarakta kvlang kullanmanı öneririm. Python syntax olarak yazmak hem okunaklı değil hemde çok gereksiz.
Database dosyasını çalıştırmak için terminalden sqlite3 kurupta yapabilirsin veya Sqlite Browser indirerekte database dosyasına ne kayıt edilmiş, herhangi bir sorun var mı bakabilirsin.
#main.py
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen
from page1 import Page1
from page2 import Page2
class Main(App):
def build(self):
sm = ScreenManager()
sm.add_widget(Page1(name="page1"))
sm.add_widget(Page2(name="page2"))
return sm
Main().run()
#page1.py
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.lang import Builder
from database import Database
Builder.load_file("page1.kv")
class Page1(Screen):
db = Database()
#page1.kv
<Page1>:
BoxLayout:
orientation: "vertical"
TextInput:
id: text1
TextInput:
id: text2
Button:
text: "Kayıt"
on_press: root.db.add_data(text1.text, text2.text)
Button:
text: "Page2"
on_press: root.manager.current = "page2"
#page2.py
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.lang import Builder
Builder.load_file("page2.kv")
class Page2(Screen):
pass
#page2.kv
<Page2>:
BoxLayout:
Button:
text: "Page2"
on_press: root.manager.current = "page1"
#database.py
import sqlite3
class Database():
db = sqlite3.connect("db.db")
im = db.cursor()
def __init__(self, *args):
self.im.execute("CREATE TABLE IF NOT EXISTS Users (ad, soyad)")
def add_data(self, *args):
self.im.execute("INSERT INTO Users (ad, soyad) VALUES ({},{})".format(args[0], args[1]),)
self.db.commit()
def select_data(self):
self.im.execute("SELECT * FROM Users")
print(self.im.fetchall())