Button print command in Entry Feld eintragen

Fragen zu Tkinter.
Antworten
Physikisdoll
User
Beiträge: 2
Registriert: Dienstag 23. Oktober 2012, 14:42
Wohnort: Stuttgart

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!
Zuletzt geändert von Anonymous am Dienstag 23. Oktober 2012, 18:01, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Code-Tags gesetzt.
Physikisdoll
User
Beiträge: 2
Registriert: Dienstag 23. Oktober 2012, 14:42
Wohnort: Stuttgart

Kann hier keiner ein Tip geben?
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.
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

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:
Take it easy Mates!
Antworten