ich habe mal die "Kernelemente" aus meinem Programm herausgegriffen.
Das Programm läuft zwar, aber ich sehe eine Ungereimtheit:
Also die eine Tastenfunktion steht als erstes vor der gui Funktion.Funktion Taste "Muster prüfen"
....Funktion gui ()
....Funktion Taste "neues Wort eingeben"
....root
.... ... frames
.... ... felder
.... ... tasten
....root.mainloop()
if __name__ == "__main__": gui()
Die andere gruppiert innerhalb der gui.
In welcher Reihenfolge sollte ich die Blöcke logisch plazieren?
Abgesehen von nicht systemgerechtem Aufbau; könnten es auch Ablaufprobleme geben?
Zur Dokumentation meiner zweiten Frage, hänge ich Auszüge einiger Programmmodule an.
Die Taste "Muster prüfen" ist die Hauptfunktion. Es werden Eingabemuster auf Übereinstimmung in einem Wörterbuch verglichen.
Bei fehlenden Wörtern im Wörterbuch möchte ich mir in einer separaten Datei einen Hinweis merken (z.B. "Prüf, ..en, ..t, Prüfung").
Dafür drücke ich die Taste "neues Wort eingeben".
Es wäre nun aber praktisch, wenn das Programm nach der Worteingabe noch ca. 10 Sekunden im Eingabefeld stehen bliebe, für den Fall dass noch ein weiteres Wort eingegeben werden soll. Und nach der Zeitdauer wieder die erste Taste bzw. das erste Feld "Muster prüfen" fokussiert wird.
Da würde ich mich über einen Tipp freuen, wie und wo ich das bewerkstellige.
Grüße, Klaus
Hier mein Programmauszug:
----------------------------------------------
Code: Alles auswählen
# Eingegebenes Muster prüfen
def must_prf (eing_muster, ausg_muster, feld_ag_must,
treffer, zeitdauer, eing_anz, letztes_muster):
def gui (ausgabe = '""):
# neues Wort eingeben
def tast_neu_wort (eg_neu_wort, ag_neu_wort, letztes_wort, feld_ag_neu_wort):
root = tk.Tk()
frame_left = tk.Frame(rahmen, width=w/3, height =h, relief="ridge", borderwidth=3)
frame_left.grid(column=0, row=0)
frame_mid = tk.Frame(rahmen, width=w/3, height =h, relief="ridge", borderwidth=3 )
frame_mid.grid(column=1, row=0)
frame_right = tk.Frame(rahmen, width=w/3, height =h, relief="ridge", borderwidth=3)
frame_right.grid(column=2, row=0)
global scrollbar; scrollbar = tk.Scrollbar(frame_left)
ausg_lst = Listbox(frame_left, yscrollcommand = scrollbar.set,
width = 15, height = 22, font = ('arial', 13))
scrollbar.config(command=ausg_lst.yview)
ausg_lst.grid(column=0, row =0, padx=5)
scrollbar.grid(column=1, row =0, padx=5, sticky='ns')
feld_eg_must = tk.Entry(frame_mid, width=15, bd=5, relief="ridge", font=('arial', 20),
textvariable = eing_muster, bg='white')
feld_eg_must.grid(column=1, row=1, pady=5)
feld_eg_neu_wort = tk.Entry(frame_right, width=20, bd=5, relief="ridge", font=('arial', 13),
text=ausgabe, textvariable = eg_neu_wort, bg='white')
feld_eg_neu_wort.grid(column=1, row=3, pady=5)
taste_prf = tk.Button(frame_mid, width = 22, bd=5, font=('arial', 17),
command = partial(must_prf, eing_muster, ausg_muster, feld_ag_must,
treffer, zeitdauer, eing_anz, letztes_muster), bg="papaya whip",
text = "Muster prüfen")
taste_prf.grid(column=1, row=2, pady=5, padx=8)
taste_neu_wort = tk.Button(frame_right, width = 15,text="Ergänzen",
font=('arial', 13),
command = partial(tast_neu_wort, eg_neu_wort, ag_neu_wort,
letztes_wort, feld_ag_neu_wort), bg="old lace")
taste_neu_wort.grid (column=1, row=5, pady=5, padx=10)
root.mainloop()
if __name__ == "__main__":
gui()