Wenn ich das Eintrags-Widget entferne, passt sich alles perfekt an, aber nach dem Hinzufügen des Eintrags-Widgets wird alles verschlüsselt. Ich verwende Grid Geometry Manager und habe den Speicherort des Eingabefelds angegeben, es wird jedoch nicht korrekt angezeigt.Buttons und Eintragslabel erscheinen nicht dort, wo sie eigentlich erscheinen sollten
from Tkinter import*
root=Tk()
root.title("Calculator")
def calculate():
print x
def callback(x):
print x
Entry(root).grid(row=0)
Button(root,text="0",command=lambda:callback(0)).grid(row=4,column=1)
Button(root,text="1",command=lambda:callback(1)).grid(row=1,column=0)
Button(root,text="2",command=lambda:callback(2)).grid(row=1,column=1)
Button(root,text="3",command=lambda:callback(3)).grid(row=1,column=2)
Button(root,text="4",command=lambda:callback(4)).grid(row=2,column=0)
Button(root,text="5",command=lambda:callback(5)).grid(row=2,column=1)
Button(root,text="6",command=lambda:callback(6)).grid(row=2,column=2)
Button(root,text="7",command=lambda:callback(7)).grid(row=3,column=0)
Button(root,text="8",command=lambda:callback(8)).grid(row=3,column=1)
Button(root,text="9",command=lambda:callback(9)).grid(row=3,column=2)
Button(root,text="+",command=lambda:callback(12)).grid(row=1,column=3)
Button(root,text="-",command=lambda:callback(13)).grid(row=2,column=3)
Button(root,text="*",command=lambda:callback(14)).grid(row=3,column=3)
Button(root,text="/",command=lambda:callback(15)).grid(row=4,column=3)
Button(root,text="=",command=calculate).grid(row=4,column=2)
Button(root,text=".",command=lambda:callback(11)).grid(row=4,column=0)
root.mainloop()
, wenn Sie setzen 'entry' dann alle Zellen in der gleichen Spalte die gleiche Breite erhalten. Verwenden Sie 'columspan', so dass Entry mehr Spalten verwendet - dh. 'Eintrag (root) .grid (row = 0, columspan = 4)'. Oder benutzen Sie 'Frame' und' pack', um Elemente zu organisieren. – furas