Python-Tkinter画布中的文本输入



我想在用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)

其中前两个参数指定周围的点,整个文本框将以该点为中心。高度和宽度用于设置文本框的高度和宽度。

该窗口用于指定条目。

相关内容

  • 没有找到相关文章

最新更新