ich wage mich das erste mal an das Programmieren eines GUI mit tkinter, also nehmt mir bitte das ein oder andere fragwürdige im code nicht übel. Das Problem welches ich habe ist das ich eine Variable durch einen Knopfdruck auf einen bestimmten wert setzen möchte( Funktion A). Das Problem welches ich nun habe ist das die Variable x, für die Spätere Funktion Rechen gebraucht wird um zu gucken was addiert wird, nachdem ich auf den Tkinter Knopf von der Funktion A(1Euro) gedrückt habe ,somit x definiert habe oder?, drücke ich auf den Knopf für Rechen(test) um meine sql Datenbank zu updaten, jedoch kommt dann folgende Fehlermeldung: NameError: name 'x' is not defined. Kann mir bitte jemand weiterhelfen?
Code: Alles auswählen
import tkinter
import sqlite3
#Funktion zum Anzeugen des betrages
def Befehl():
l = str(e.get())
sql = "SELECT * FROM personen WHERE kartennummer =?"
cursor.execute(sql, (l,))
for dsatz in cursor:
n = str(dsatz[0])
g = str(dsatz[1])
a = str(dsatz[3])
lb["text"] = "Daten:" + str(n) + str(g) + str(a)
def A():
x = int(1)
return(x)
def Zwei():
x = int(2)
return(x)
def Drei():
x = int(3)
return(x)
#def Vier():
#kommt noch
#p.get()
def Rechnen():
l = str(e.get())
sql= "SELECT * FROM personen WHERE kartennummer =?"
cursor.execute(sql, (l,))
if x == 1:
for dsatz in cursor:
f=float(dsatz[3])
y=float(f+1)
if x == 2:
for dsatz in cursor:
f=float(dsatz[3])
y=float(f+2)
if x == 3:
for dsatz in cursor:
f=float(dsatz[3])
y=float(f+0.5)
#if x==4:
#kommt noch
sql= "UPDATE personen SET betrag = ?" \
"WHERE kartennummer = " +str(l)
cursor.execute(sql, (y,))
connection.commit()
def ende():
main.destroy()
main = tkinter.Tk()
connection = sqlite3.connect("Betrag.db")
cursor = connection.cursor()
Eins = tkinter.Button(main, text = "1 Euro",
command = A())
Eins.pack()
# einzeiliges Eingabefeld
e = tkinter.Entry(main)
e.pack()
#Schaltfläche zur Verarbeitung und Ausgabe
test = tkinter.Button(main, text = "Test",
command = Rechnen)
test.pack()
bquad = tkinter.Button(main, text = "Suche",
command = Befehl)
bquad.pack()
lb = tkinter.Label(main, text = "Ergebnis")
lb.pack()
bende = tkinter.Button(main, text = "Ende",
command = ende)
bende.pack()
main.mainloop()
connection.close()