Text aus Fenster abfragen funktioniert nicht

Fragen zu Tkinter.
Antworten
Maximilianibus
User
Beiträge: 43
Registriert: Samstag 13. Februar 2010, 18:14
Wohnort: Sauerbratenserver

Hallo, ich habe folgendes Problem:
Ich lerne zur Zeit Japanisch, weshalb ich mir ein Programm schreiben wollte, was mich Zeichen abfragt.
Ich wollte es mit Bildern lösen, warum ist egal.
Jedenfalls habe ich, mit der Hilfe von nem Kumpel, jetzt das hier:

Code: Alles auswählen

from Tkinter import * 
import random
import time

class App:
	def __init__(self, root):
		random.seed()
		a = random.randint(1, 6)
		if a == 1:
			pth = "ha.gif"
			lsg = "ha"
		if a == 2:
			pth = "ne.gif"
			lsg = "ne"
		if a == 3:
			pth = "no.gif"
			lsg = "no"
		if a == 4:
			pth = "hi.gif"
			lsg = "hi"
		if a == 5:
			pth = "fu.gif"
			lsg = "fu"
		if a == 6:
			pth = "he.gif"
			lsg = "he"
		if a == 7:
			pth = "ho.gif"
			lsg = "ho"
		if a == 8:
			pth = "ma.gif"
			lsg = "ma"
		if a == 9:
			pth = "mi.gif"
			lsg = "mi"
		if a == 10:
			pth = "mu.gif"
			lsg = "mu"
		if a == 11:
			pth = "me.gif"
			lsg = "me"
		if a == 12:
			pth = "mo.gif"
			lsg = "mo"
		if a == 13:
			pth = "ya.gif"
			lsg = "ya"
		if a == 14:
			pth = "yu.gif"
			lsg = "yu"
		if a == 15:
			pth = "yo.gif"
			lsg = "yo"
		#print pth
		img = PhotoImage(file=pth)
		label = Label(image=img)
		label.image = img
		label.pack()
		ent = Entry(root)
		ent.pack()
while True:
	root = Tk()
	display = App(root)
	root.mainloop()

jetzt möchte ich, dass er die Eingabe mit der Variable lsg vergleicht, und dann mir mitteilt, ob es richtig ist.
Ich kriege es allerdings nicht hin, die Variable aus einer Eingabezeile einzulesen. Ich habe es mit ent.get versucht, allerdings wird es nie ausgeführt. Jetzt wollte ich fragen, wie ich Return zum abfragen der Variablen binden kann, damit ich sie auch ausserhalb der Funktion, also inerhalb der while-Schleife, benutzen kann. Glaubt mir, ich bin nicht dämlich, ich habe es mit ent.bind('<return>'(FUNKTION MIT DEM CODE x = ent.get) versucht, aber return wäre ein schlechtes event.
Wahrscheinlich ist euch mein Post zu ungenau, aber das kenne ich ja mittlerweile, nachdem ich mitgekriegt habe, wie ihr ein Haufen Neulinge einfach mal geflamet habt.
Gruß, Max
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Maximilianibus hat geschrieben: Wahrscheinlich ist euch mein Post zu ungenau, aber das kenne ich ja mittlerweile, nachdem ich mitgekriegt habe, wie ihr ein Haufen Neulinge einfach mal geflamet habt.
So eine Unterstellung motiviert ja ungemein :twisted:

Dennoch mal nen Tipp:

Code: Alles auswählen

chars = ["ha", "ne", "no", "hi", "fu"] #usw.
char = random.choice(chars)
img = PhotoImage(file="{0}.gif".format(char))
Liest sich einfacher, gel ;-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Maximilianibus
User
Beiträge: 43
Registriert: Samstag 13. Februar 2010, 18:14
Wohnort: Sauerbratenserver

Hyperion hat geschrieben:
Maximilianibus hat geschrieben: Wahrscheinlich ist euch mein Post zu ungenau, aber das kenne ich ja mittlerweile, nachdem ich mitgekriegt habe, wie ihr ein Haufen Neulinge einfach mal geflamet habt.
So eine Unterstellung motiviert ja ungemein :twisted:
wird aber dennoch von vielen gemacht ^^
danke für den tipp! hatte sich mittlerweile erledigt, aber beim nächsten update werde ich deinen vorschlag einbauen!
es hatte an ein paar self.'s gefehlt :D
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Maximilianibus hat geschrieben:
Hyperion hat geschrieben:
Maximilianibus hat geschrieben: Wahrscheinlich ist euch mein Post zu ungenau, aber das kenne ich ja mittlerweile, nachdem ich mitgekriegt habe, wie ihr ein Haufen Neulinge einfach mal geflamet habt.
So eine Unterstellung motiviert ja ungemein :twisted:
wird aber dennoch von vielen gemacht ^^
Da geht es nicht um Neulinge an sich, sondern um Leute die sich dumm anstellen also mithin nan Code posten und sagen: "Da, macht mal" oder "Schreibt meine Hausaufgabe fertig".

Ich frage mich allerdings, warum du da Bilder benutzt? あいうえお und Co sind durchaus in üblichen Fonts drin, ergo kein Grund die in Bildern stehen zu haben.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Maximilianibus
User
Beiträge: 43
Registriert: Samstag 13. Februar 2010, 18:14
Wohnort: Sauerbratenserver

ich habe keinen japanischen schriftsatz installiert, und ich finde meine windows cd zur zeit nicht...
gruß, max
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Kein Problem, einfach runterladen. Gerade VLGothic finde ich im Vergleich zu vielen Japanischen Fonts nicht so furchtbar hässlich weil es Kantenglättung nutzt. Ist natürlich dann ggf. für Kanji nicht optimal, aber hier gehts ja um Hiragana und höchstens noch Katakana.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Maximilianibus
User
Beiträge: 43
Registriert: Samstag 13. Februar 2010, 18:14
Wohnort: Sauerbratenserver

danke! ;)
EDIT: ähh.. wie tippe ich jetzt damit? runtergeladen, ttf's installiert. und jetzt?
Antworten