Seite 1 von 1

Button print command in Entry Feld eintragen

Verfasst: Dienstag 23. Oktober 2012, 14:54
von Physikisdoll
servus,

bin grade dabei mich in Tkinter reinzufinden und hab folgendes (vermutlich) lächerliches Problem:
Ich habe ein Entry-Feld und (erst mal) ein Button dessen Funktion es sein soll, einen Buchstaben in das Entry-Feld zu schreiben.
Mein Ansatz:

Code: Alles auswählen

from Tkinter import *

fenster=Tk()
fenster.geometry("1024x576")
name=Entry(fenster)
name.pack()

def ausgabe():
    print 'b'

b=Button(fenster, text='b', command = ausgabe)
b.pack()


fenster.mainloop()
Vielleicht kann mir da jemand schnell helfen ;-)
(Ziel ist später eine grafische Tastatur)
Danke schonmal!

Re: Button print command in Entry Feld eintragen

Verfasst: Mittwoch 24. Oktober 2012, 09:41
von Physikisdoll
Kann hier keiner ein Tip geben?

Re: Button print command in Entry Feld eintragen

Verfasst: Mittwoch 24. Oktober 2012, 10:36
von BlackJack
@Physikisdoll: Die Dokumentation zu `Tkinter` und die ganzen Links die dort am Anfang erwähnt werden, insbesondere Effbot's Referenz und dort die Seite zum Entry Widget.

Und PEP 8 -- Style Guide for Python Code ist vielleicht einen Blick wert.

Den Sternchenimport sollte man zugunsten von ``import Tkinter as tk`` aufgeben und die Attribute des Moduls dann explizit über den Modulnamen referenzieren, also ``tk.Tk()`` oder ``tk.Entry(…)``. Das `Tkinter`-Modul enthält ≈190 Namen die man sich mit einem ``*``-Import ins Modul kippt.

Und für GUI-Programmierung sollte man IMHO erst einmal objektorientierte Programmierung drauf haben. Sonst werden die Programme schnell recht unübersichtlich und unsauber.

Re: Button print command in Entry Feld eintragen

Verfasst: Mittwoch 24. Oktober 2012, 11:26
von wuf
Hi Physikisdoll

Hier eine mögliche Variante:

Code: Alles auswählen

from Tkinter import *

fenster=Tk()
fenster.geometry("1024x576")

entry_text = StringVar()
name=Entry(fenster, textvariable=entry_text)
name.pack()

def ausgabe():
    print 'b'
    entry_text.set('b')

b=Button(fenster, text='b', command = ausgabe)
b.pack()


fenster.mainloop()
Gruß wuf :wink: