Seite 2 von 2
Verfasst: Samstag 7. Juli 2007, 21:04
von BlackJack
Was für einen Fehler bekommst Du denn und wo!?
Verfasst: Sonntag 8. Juli 2007, 10:01
von Y0Gi
`vokabeln` ist auch ein guter Name für jene Liste

Verfasst: Sonntag 8. Juli 2007, 13:01
von klaus
Ok, dnn benenne ich es in vokabeln um.
Was fürn Fehler des ist weiß ich nicht, ich schau mal kurz nach und edite des dann. War aber keiner der schonmal bei irgendeinem Programm von mir aufgetreten ist.
edit: ich habs grad nochmal ausprobiert, jetzt hats funktioniert.
Der Fehler ist bis jetzt immer dann aufgetreten, wenn ich "er schmückt" (ornat) eingegeben habe. Ich habs mit "er schmuckt" (also ohne ü) probiert und da gings. Kann des daran liegen, das ich die Funktion bis jetzt immer über "run script" definiert habe, letztes mal (wo der Fehler auftrat) aber die from ... import * Anweisung benutzt habe?
Verfasst: Samstag 8. September 2007, 17:04
von klaus
Hi,
Ich bin jetzt fertig mit Vokabeln tippen und hab jetzt noch zwei fragen:
1. Wie kann ich des machen, dass ich eine Benutzeroberfläche erstell, die dann die lateinischen Vokabeln anzeigt, ein Feld hat wo man die deutsche Bedeutung eingeben kann und die dann die korrekte Bedeutung anzeigt (bzw. "Richtig" wenn die Vokabel gewusst wurde).
2. Kann ich das ganze in eine .exe-Datei umwandeln, so dass man nicht immer erst die Datei mit "Edit with IDLE" öffnen, dann auf "Run Script" klicken und dann die Funktion latein() aufrufen muss.
Wäre froh wenn ihr mir helfen könntet.
Verfasst: Samstag 8. September 2007, 17:51
von Leonidas
klaus hat geschrieben:1. Wie kann ich des machen, dass ich eine Benutzeroberfläche erstell, die dann die lateinischen Vokabeln anzeigt, ein Feld hat wo man die deutsche Bedeutung eingeben kann und die dann die korrekte Bedeutung anzeigt (bzw. "Richtig" wenn die Vokabel gewusst wurde).
Mit einem GUI-Toolkit?! Hast ja Tkinter, wxPython, PyGTK und pyQt zur Auswahl.
klaus hat geschrieben:2. Kann ich das ganze in eine .exe-Datei umwandeln, so dass man nicht immer erst die Datei mit "Edit with IDLE" öffnen, dann auf "Run Script" klicken und dann die Funktion latein() aufrufen muss.
Ja, aber wozu? Du kannst auch dem Skript sagen, dass es bei einem Doppelklick ``latein()`` (oder was auch immer) aufrufen soll.
Verfasst: Sonntag 9. September 2007, 12:03
von klaus
OK, werd ich wohl so machen. Mit Toolkits hab ich mich zwar noch nicht auseinandergesetz, aber ich werds schon hinkriegen.
Den Aufruf der Funktion latein() muss ich dann einfach hinter der Definition in das Script reinschreiben, oder?
Verfasst: Sonntag 9. September 2007, 12:12
von Leonidas
klaus hat geschrieben:Den Aufruf der Funktion latein() muss ich dann einfach hinter der Definition in das Script reinschreiben, oder?
Am besten so:
Verfasst: Sonntag 9. September 2007, 12:20
von klaus
stimmt, hab ich vergessen, danke
Verfasst: Montag 10. September 2007, 15:49
von klaus
Ich hab jetzt mal so nen groben Entwurf gemacht.
Code: Alles auswählen
from Tkinter import *
question = "Hallo!"
solve = "Richtig!"
class Iface:
def __init__(self, master):
frame=Frame(master)
frame.pack()
self.question=Label(frame, text=question)
self.question.pack()
self.answer=Entry(frame)
self.answer.pack()
self.solve=Button(frame, text=solve)
self.solve.pack()
self.exit=Button(frame, text="Exit", fg="red", command=frame.quit)
self.exit.pack()
root=Tk()
iface=Iface(root)
root.mainloop()
Ich hab aber noch ein paar Fragen:
1. Wie soll ich das in mein bisheriges Skript einbinden?
2. Wie krieg ich es hin, das der Inhalt von Entry einer Variablen zugewiesen wird, wenn ich Enter drücke?
3. Wie schaff ich es, dass die nächste Frage erst angezeigt wird, wenn man auf den Button klickt?
4. Wie lege ich die Größe von dem Frame fest
Verfasst: Dienstag 11. September 2007, 14:40
von Leonidas
klaus hat geschrieben:Ich hab aber noch ein paar Fragen:
1. Wie soll ich das in mein bisheriges Skript einbinden?
2. Wie krieg ich es hin, das der Inhalt von Entry einer Variablen zugewiesen wird, wenn ich Enter drücke?
3. Wie schaff ich es, dass die nächste Frage erst angezeigt wird, wenn man auf den Button klickt?
4. Wie lege ich die Größe von dem Frame fest
Ich glaube du hast hier das falsche Forum erwischt und viele Fragen erledigen sich schon, wenn man die Tkinter-Dokumentation lesen würde.
Verfasst: Freitag 14. September 2007, 16:09
von klaus
Hi,
Ich wollte gerade ein Programm erstellen, das in einer endlosschleife drei Fragen stellt und dann versuchen, die GUI erstmal dort zu testen. Dabei ist allerdings ein Fehler aufgetreten, den ich nicht verstehe. Hier mal der Code:
Code: Alles auswählen
voklist = [["a ", "b", 0], ["c ", "d", 0], ["e", "f", 0]
def frage(data):
question, solve, stat = data
solution = solve.split(", ")
answer = raw_input(question)
if answer in solution:
print "Richtig!"
data[2] = data[2] + 2
return 1
else:
print "Falsch! Richtig ist: ", solve
data[2] = data[2] + 1
return 0
def quiz():
while 1:
for element in voklist:
correct = frage(element)
counter = counter + 1
if correct == 1:
points = points + 1
print
if __name__ == __main__:
quiz()
Und hier der Fehler:
Code: Alles auswählen
File "C:\Py4Kids\mylib\tkquiz.py", line 3
def frage(data):
^
SyntaxError: invalid syntax
wäre froh, wenn ihr mir sagen könntet, wieso hier ein Syntax-Fehler auftritt.
Verfasst: Freitag 14. September 2007, 17:24
von gerold
Hallo Klaus!
Code: Alles auswählen
voklist = [["a ", "b", 0], ["c ", "d", 0], ["e", "f", 0]]
Da war wohl eine Klammer zu wenig.
mfg
Gerold

Verfasst: Freitag 14. September 2007, 18:05
von klaus
Danke Gerold: Hab's ausgebessert.
Es gab zwar immer noch ein paar Fehler, aber die konnte ich selber beheben. Ich hab bloß nicht verstanden was die IDLE wollte, weil sie "def" markiert hat (und nicht den Ort wo die Klammer gefehlt hat).
edit: Thread unter "Tkinter / GUI in Programm integrieren" weitergeführt. ==>
http://www.python-forum.de/topic-12058.html
wenn der Vokabeltrainer mal komplett fertig ist, wird er auf der Seite
www.juggleclips.de.vu im Menü unter Hobbies / Python zu finden sein.