widgets "überlappen"

Fragen zu Tkinter.
Antworten
_narf_
User
Beiträge: 4
Registriert: Montag 26. Juli 2010, 11:32

Hallo,

Zu Übungszwecken bin ich dabei das altbekannte Bankautomatenprojekt mit Hilfe von Tkinter umzusetzen. Dabei tritt jedoch das Problem auf, dass die Widgets in der ersten Reihe sich überlappen, sprich das Eingabefeld "überschreibt" das Label etc.

Hier ein Screenshot zum besseren Verständnis:

Bild

Baue ich nun das zweite Label "Passwort" ein, ergibt sich folgendes:

Bild

Hier der Quelltext:

Code: Alles auswählen

main = tkinter.Tk()

greeting = tkinter.Label(main, bg="#ffffab")
greeting["text"] = "	B A N K A U T O M A T		"
greeting["font"] = "Sans 18"
greeting.grid(row=0, column=0, columnspan=8)

login = tkinter.Label(main, bg="#ffffdf")
login["text"] = "Kontonr. :"
login.grid(row=1, column=1)

login_input = tkinter.Entry()
login_input.grid(row=1, column=2)

#passwd = tkinter.Label(main, bg="#ffffdf")
#login["text"] = "Passwort :"
#login.grid(row=1, column=3)

main.mainloop()
Vielen Dank für jegliche Hilfe im Voraus :)

edit:
Ich vergas zu erwähnen: Benutzt wird python3
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hallo _narf_

Willkommen in unserem Forum.

Entspricht das folgende eher deiner Erwartung?:

Code: Alles auswählen

import tkinter

main = tkinter.Tk()

greeting = tkinter.Label(main, bg="#ffffab")
greeting["text"] = "   B A N K A U T O M A T      "
greeting["font"] = "Sans 18"
greeting.grid(row=0, column=0, columnspan=8)

login = tkinter.Label(main, bg="#ffffdf")
login["text"] = "Kontonr. :"
login.grid(row=1, column=1, pady=1)

login_input = tkinter.Entry()
login_input.grid(row=1, column=2)

passwd = tkinter.Label(main, bg="#ffffdf")
passwd["text"] = "Passwort :"
passwd.grid(row=2, column=1,pady=1)

passwd_input = tkinter.Entry()
passwd_input.grid(row=2, column=2)

main.mainloop()
Gruss wuf :wink:
Take it easy Mates!
_narf_
User
Beiträge: 4
Registriert: Montag 26. Juli 2010, 11:32

Hiho,

Nun, prinzipiell schon, besser als vorher ist es allemal :D

Allerdings wollte ich die beiden Eingabefelder samt Beschreibung gerne auf einer Ebene, nebeneinander haben, nicht aus einem bestimmten Grund sondern nur um zu wissen wie das denn nun zu bewerkstelligen ist (falls es das ist).
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

...... Meinst du wie folgt?:

Code: Alles auswählen

import tkinter

main = tkinter.Tk()

greeting = tkinter.Label(main, bg="#ffffab")
greeting["text"] = "   B A N K A U T O M A T      "
greeting["font"] = "Sans 18"
greeting.grid(row=0, column=0, columnspan=8)

login = tkinter.Label(main, bg="#ffffdf")
login["text"] = "Kontonr. :"
login.grid(row=1, column=1, pady=1)

login_input = tkinter.Entry()
login_input.grid(row=1, column=2)

passwd = tkinter.Label(main, bg="#ffffdf")
passwd["text"] = "Passwort :"
passwd.grid(row=1, column=3,pady=1)

passwd_input = tkinter.Entry()
passwd_input.grid(row=1, column=4)

main.mainloop()
Eventuell verstehe ich dich falsch.

Gruss wuf :wink:
Take it easy Mates!
_narf_
User
Beiträge: 4
Registriert: Montag 26. Juli 2010, 11:32

Nein, das letzte Stück ergibt exakt was ich wollte.

Herzlichen Dank :)
Antworten