Hallo,
ich brauch in einem Frame ein entry fenster, in das man was eingibt, dann enter drückt und der inhalt dann als variable genommen wird.
nach dem ganzen, soll das eingabefeld wieder leer erscheinen und das ganze von vorne, bis man 4 variablen hat.
Kann mir irgendwer erklären wie ich das mach???
Vielen Dank
Entry eingabe
Hallo Ravenlord
Sorry ich habe dir das falsche Skript
angegeben. Es heisst nicht nur
SimpleDialog.py
sondern
tkSimpleDialog.py
Das Skript sollte sich auch im
Verzeichnis /python2.3/lib_tk befinden.
Du musst das Skript einfach in die Idle-
Umgebung laden und starten. Oder aus
einem Terminal starten.
Es zeigt hintereinander drei Eingabe-Dialoge.
Einer für Strings, einer für Floats und einer
für Integers. Die drei Dialoge werden nicht
alle auf einmal gezeigt, sondern nach Bestätig-
ung des einen kommt der andere.
Du kannst das Skript einmal durchschauen, es
lehnt sich stark an OOP.
Good Luck
Gruss wuf
Sorry ich habe dir das falsche Skript
angegeben. Es heisst nicht nur
SimpleDialog.py
sondern
tkSimpleDialog.py
Das Skript sollte sich auch im
Verzeichnis /python2.3/lib_tk befinden.
Du musst das Skript einfach in die Idle-
Umgebung laden und starten. Oder aus
einem Terminal starten.
Es zeigt hintereinander drei Eingabe-Dialoge.
Einer für Strings, einer für Floats und einer
für Integers. Die drei Dialoge werden nicht
alle auf einmal gezeigt, sondern nach Bestätig-
ung des einen kommt der andere.
Du kannst das Skript einmal durchschauen, es
lehnt sich stark an OOP.
Good Luck
Gruss wuf
Hallo Ravelord
Alles klar. Hier ist ein
einfacheres Beispiel:
Gruss wuf
Alles klar. Hier ist ein
einfacheres Beispiel:
Code: Alles auswählen
import sys
from Tkinter import *
def Beenden():
sys.exit(0)
# Funktion für die Ausgabe
def Ausgabe(event):
lb["text"] = 'Ausgabe: ' + eingabe.get()
eingabe.set(0)
root = Tk()
root.title('Eingabe')
# Zeichensatz für die Ausgabe
font = ('Helvetica',20,'bold')
eingabe = StringVar()
eingabe.set(0)
# Eingabefeld
e = Entry(root,textvariable=eingabe,bg='white')
e.pack()
# Ausgabe mit Enter-Taste
e.bind("<Return>",Ausgabe)
# Label für die Ausgabe
lb = Label(root,
fg='blue',
text = 'Ausgabe: ' + eingabe.get(),
font = font,
)
lb.pack(pady = 10)
# Button für Beenden
bende = Button(root, text = "Ende", command = Beenden)
bende.pack(side= 'bottom')
root.mainloop()
Take it easy Mates!
du bist ein schatz danke *fg*
e.bind("<Return>",Ausgabe)
die zeile hab ich gesucht
aber noch was anderes in dem zusammenhang:
wie kann ich noch einstellen, dass der solange nix machen soll, bis ich da was eingegeben hab???
mfg + thx
/edit 10min später
sry das ich nerve, habs jetz geschafft *froi*
/edit nochmal
hm irgendwie bekomm ich das doch nich auf die reihe
also ich hab jetz das eingabe feld, kann was eingaben, das wird an die liste angehängt und jetz brauch ich nur noch die möglichkeit, das nach der 4ten eingabe, eine andere funktion ausgeführt wird.
danke an alle!
e.bind("<Return>",Ausgabe)
die zeile hab ich gesucht
aber noch was anderes in dem zusammenhang:
wie kann ich noch einstellen, dass der solange nix machen soll, bis ich da was eingegeben hab???
mfg + thx
/edit 10min später
sry das ich nerve, habs jetz geschafft *froi*
/edit nochmal
hm irgendwie bekomm ich das doch nich auf die reihe
also ich hab jetz das eingabe feld, kann was eingaben, das wird an die liste angehängt und jetz brauch ich nur noch die möglichkeit, das nach der 4ten eingabe, eine andere funktion ausgeführt wird.
danke an alle!
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
schau halt wie lange die liste der eingaben ist
ansonst nen stückchen Code in code-tags wär nett, dann kann man konkreter werden.
Gruß
Dookie
Code: Alles auswählen
if len(liste) < 4:
liste.append(eingabe)
else:
#mach was anderes
Gruß
Dookie
das würde aber heißen, das ich noch ein fünftes mal was eingeben muss, damit der beendet...
so sieht der code an der stelle aus:
so sieht der code an der stelle aus:
Code: Alles auswählen
Fenster = Tk()
frame1 = Frame(Fenster, relief = RIDGE, borderwidth =2)
frame1.pack(fill=NONE, side = LEFT)
frame2 = Frame(Fenster, relief = RIDGE, borderwidth = 2)
frame2.pack(fill="y", side = RIGHT)
canvas = Canvas(frame1 ,height = 800)
canvas.pack()
canvas2 = Canvas(frame2, height = 300, width = 150)
canvas2.pack()
eingabe = StringVar()
eingabe.set(0)
# Eingabefeld
e = Entry(frame2,textvariable=eingabe,bg='white')
e.pack()
# Ausgabe mit Enter-Taste
e.bind("<Return>",Zuweisen)
Grundstellung() #hier malt der mir das leere Mastermind spielfeld
bende = Button(frame1, text = "Ende", command = Beenden)
bende.pack(side= 'bottom')
Fenster.mainloop() <= das is dem entsprechend falsch, und hier will ich nach der 4ten eingabe in der Liste raus^^
#####weiter gehts dann mit der umwandlung in farben und den vergleich
z = {"rot" : 1, "gruen": 2, "lila": 3, "blau": 4, "gelb": 5, "grau": 6}
Liste = map(lambda x: z[x], Liste)
Richtig = []
# Vergleich
for element in Liste[:1]:
a1 = element
for element in Liste[1:2]:
b1 = element
for element in Liste[2:3]:
c1 = element
for element in Liste[3:4]:
d1 = element
...
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
da fehlt die entscheidende funktion "Zuweisen" in dieser musst Du abfragen, wieviele Eingaben schon gemacht wurden und kannst entsprechend etwas anderes machen, also das Entrywidget für weitere Eingaben sperren und die Eingaben auswerten.
Gruß
Dookie
Gruß
Dookie
Code: Alles auswählen
def Zuweisen(event):
test = eingabe.get()
Liste.append(test)
eingabe.set(0)
if len(liste) == 4:
????
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
also rauskommen tutst du mit mainquit(), aber bei einem ereignisgesteuertem GUI-Programm geht mann erst beim Beenden aus dem mainloop raus und erledtigt alles im mainloop. Ruf nach dem if len(Liste) == 4: einfach eine Funktion auf, die dann die Auswertung der Eingaben erledigt, das Spielfeld neuzeichnet...
Gruß
Dookie
Gruß
Dookie
Hallo Ravenlord
Wo sind die Funktionen
Zuweisen und Grundstellung
in deinem Skript?
Es wäre interessant zu sehen
was in diesen Funktionen ab-
läuft.
Was möchstest du als nächstes
genau machen in Stichworten?
Gruss wuf
Wo sind die Funktionen
Zuweisen und Grundstellung
in deinem Skript?
Es wäre interessant zu sehen
was in diesen Funktionen ab-
läuft.
Was möchstest du als nächstes
genau machen in Stichworten?
Gruss wuf
Take it easy Mates!