我想在用Tkinter创建的画布中为整数创建一个用户输入框。我该怎么做?
def gamescreen():
photo = PhotoImage(file="gamescreen.gif")
canvas.bind("<Button-1>", buttonclick_gamescreen)
canvas.pack(expand = YES, fill = BOTH)
canvas.create_image(1, 1, image = photo, anchor = NW)
e1 = Entry(canvas)
e2 = Entry(canvas)
game1 = PhotoImage(file="1.gif")
canvas.create_image(30, 65, image = game1, anchor = NW)
canvas.create_window(window = e1, x=10, y=10)
canvas.create_window(window = e2 , x=400, y=10)
canvas.update()
window.mainloop()
这是我目前拥有的,但画布上的任何地方都没有出现输入框。我知道这可能不是用python创建游戏的最有效方法,但我不熟悉任何其他方法。
谢谢你的帮助。
编辑:我已经根据提供的建议更新了代码。我现在遇到问题
IndexError: tuple index out of range
这发生在下方的线路上
canvas.create_window(window = e1, x=10, y=10)
canvas.create_window(window = e2, x=400, y=10)
编辑:好吧,我发现问题出在哪里了,我必须去掉x=和y=,然后自己计算坐标。现在将显示输入框。
您可以使用create_window在画布中放置小部件。
e1 = Entry(canvas)
canvas.create_window(400,10,window=e1)
好的,我进一步了解了元组的实际含义,并修复了错误。
只需要删除x=和y=,这样窗口的坐标就可以自己显示了。
取消对e1和e2的注释。您必须使用.pack()功能。
e1.pack()
e2.pack()
这应该会让它出现在屏幕上,剩下的由你决定!
编辑:还有,它不应该是canvas.mainloop()吗?窗口是定义的还是画布?
您在参数的顺序上犯了错误:
应该是:
textentry = Entry(canvas)
canvas.create_window(600, 50, window=textentry, height=50, width=1000)
其中前两个参数指定周围的点,整个文本框将以该点为中心。高度和宽度用于设置文本框的高度和宽度。
该窗口用于指定条目。