Super noob hier. Ich habe mein erstes Python-Programm beendet und es funktioniert genau so, wie es gedacht ist. Es ist eine einfache Suchmaschine für eine kleine Datenbank. Jetzt versuche ich es als Android APP mit Kivy zu portieren. Was ich jetzt tun möchte, ist einfach den Inhalt meiner gesamten SQLite-Datenbank (20 Zeilen oder so) von einer Funktion anzuzeigen, die gut in der ursprünglichen Software funktioniert.Abrufen von SQLITE Python mit Kivy
In der Android-App scheint die Funktion list_table zu funktionieren, weil sie den "gedruckten Text" anzeigt, aber nicht das Element der Datenbank selbst. Im Grunde druckt es nur "MVA:" .Im wirklich nicht sicher warum. Ich habe eine Weile versucht, eine Lösung zu finden, aber ich bin fest:/
Vielen Dank für Ihre Hilfe Leute.
#This is my main.py file
from kivy.app import App
import sqlite3 as lite
import sys
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
from kivy.uix.anchorlayout import AnchorLayout
from kivy.core.window import Window
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
import time
Window.clearcolor = (1, 1, 1, 1)
class SearchWidget(BoxLayout):
def list_table(self, *args):
try:
con = lite.connect('data.db')
con.text_factory = str
cur = con.cursor()
cur.execute("SELECT * FROM mva ORDER BY mva ASC")
con.commit()
ar = cur.fetchall()
for item in ar:
data = 'MVA ' + str(item[1]) + str(item[2]) + ': ' + str(item[0]) + ' ' + str(item[3])
return data
except lite.Error, e:
if con:
con.rollback()
print "Error %s:" % e.args[0]
sys.exit(1)
finally:
if con:
con.close()
class MyApp(App):
def build(self):
return SearchWidget()
if __name__ == '__main__':
MyApp().run()
Und das ist meine my.kv Datei
<SearchWidget>:
orientation: 'vertical'
TextInput:
id: my_textinput
font_size: 25
size_hint_y: None
height: 100
text: 'MVA Search'
BoxLayout:
Label:
color: (0, 0, 0, 1)
size: self.texture_size
text: root.list_table()
font_size: 25
Ihre Lösung funktioniert. Danke für Ihre Hilfe. – Atoms