felsök
Hej!
Ska skapa ett glosprogram enligt nedanstående kod. Någonting med koden är dock fel och jag vet inte varför. Dessutom vill jag i stället lägga in en fil med glosor i stället där glosorna, i pythonfilen, står varannan engelska och varannan svenska. Man tar alltså varannat element i filen till svenska och motsvarigheten till engelska. Dictionaryn kan tas bort. Men vet inte hur jag ska göra! Hjälp!
from tkinter import *
top = Tk()
from random import *
from time import *
top.config(background="mistyrose")
gloslista = {}
sv = StringVar()
eng = StringVar()
inmatning = StringVar()
få = IntVar()
def inmata():
svenska = sv.get()
engelska = eng.get()
gloslista[svenska] = engelska
print(gloslista)
def förhör():
rensa()
rubrik = Label(top, text = "Glosförhör")
rubrik.place(x = 190, y = 10)
rätt = Label(top, text = '')
rätt.place(x = 10, y = 50)
def svar():
matain = fråga.get()
print(matain)
if gloslista[fråga] == matain:
rätt.config(text = "rätt")
else:
rätt.config(text = "fel")
få.set(1)
for n in range(2):
fråga = choice(list(gloslista.keys()))
fråga_label = Label(top, text = fråga)
fråga_label.place(x = 10, y = 10)
fråga_entry = Entry(top, textvariable = inmatning)
fråga_entry.place(x = 50, y = 10)
svarknapp = Button(top, text = 'Svara', command = svar)
svarknapp.place(x = 10, y = 100)
svarknapp.wait(få)
def rensa():
for i in top.winfo_children():
i.destroy()
sv_label = Label(top, text = "Svenska")
sv_label.place(x = 10, y = 10)
sv_entry = Entry(top, textvariable = sv)
sv_entry.place(x = 90, y = 10)
eng_label = Label(top, text = "Engelska")
eng_label.place(x = 10, y = 50)
eng_entry = Entry(top, textvariable = eng)
eng_entry.place(x = 90, y = 50)
eng_knapp = Button(top, text = 'Spara', command = inmata)
eng_knapp.place(x = 10, y = 100)
förhörknapp = Button(top, text = 'Glosförhör', command = förhör)
förhörknapp.place(x = 60, y = 100)
top.geometry("500x500")
top.mainloop()
Funkar inmata?
Laguna skrev:Funkar inmata?
Ja? Eller den borde väl göra det?
Jag tycker det, men jag har inte provkört. Vad händer när du trycker på Glosförhör?
Laguna skrev:Jag tycker det, men jag har inte provkört. Vad händer när du trycker på Glosförhör?
Det kommer felmeddelandet:
Exception in Tkinter callback
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/tkinter/__init__.py", line 1892, in __call__
return self.func(*args)
File "/Users/a/PycharmProjects/30-08-21/Glosprogram.py", line 38, in svar
matain = fråga.get()
AttributeError: 'str' object has no attribute 'get'
villsovaa skrev:Laguna skrev:Jag tycker det, men jag har inte provkört. Vad händer när du trycker på Glosförhör?
Det kommer felmeddelandet:
Exception in Tkinter callback
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/tkinter/__init__.py", line 1892, in __call__
return self.func(*args)
File "/Users/a/PycharmProjects/30-08-21/Glosprogram.py", line 38, in svar
matain = fråga.get()
AttributeError: 'str' object has no attribute 'get'
Ok löste det, men vet fortfarande inte hur nästa element i dictionary ska genereras om inte med en for-loop. Det enda som händer är att det första elementet i dictionary kommer upp. Sen stannar det.
Jag har inte försökt förstå koden helt och hållet, och jag kan inte allt som du använder heller. Vad är det för dictionary du menar?
Laguna skrev:Jag har inte försökt förstå koden helt och hållet, och jag kan inte allt som du använder heller. Vad är det för dictionary du menar?
Alltså att jag skapar en dictionary där orden jag skriver in läggs. Dvs "gloslista" i min kod.
Nu har jag provkört. Jag får i stället att Button inte har något attribut wait.
Laguna skrev:Nu har jag provkört. Jag får i stället att Button inte har något attribut wait.
Får jag också. Tog bort den raden. Och hur ska jag göra för att få fram nästa inmatade ord i listan när jag trycker på "svara"?