如何通过tkinter绑定传递更多参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过tkinter绑定传递更多参数相关的知识,希望对你有一定的参考价值。

如何通过tkinter的bind方法传递更多参数?例如:

tk = Tk()
def moveShip(event,key):
    if event.keysym == 'Down' and player1.selectedCoord[1] != 9:
        if key == 'place':
            player1.selectedCoord[1] += 1
    elif event.keysym == 'Up' and player1.selectedCoord[1] != 0:
        if key == 'place':
            player1.selectedCoord[1] -= 1
    elif event.keysym == 'Left' and player1.selectedCoord[0] != 0:
        if key == 'place':
            player1.selectedCoord[0] -= 1
    elif event.keysym == 'Right' and player1.selectedCoord[0] != 9:
        if key == 'place':
            player1.selectedCoord[0] += 1

tk.bind("<Key>", command=moveShip(event,'place'))

代替

tk.bind("<Key>", moveship)

[当我运行第一个时,它表示未定义事件

答案
您总是可以将回调函数包装在lambda中。

tk.bind('<Key>', lambda event: moveShip(event, 'place'))

另一种选择是使用partial中的functool创建已经设置了默认值key的功能。

from functools import partial moveShip_place = partial(moveShip, key='place') tk.bind('<Key>', moveShip_place)

以上是关于如何通过tkinter绑定传递更多参数的主要内容,如果未能解决你的问题,请参考以下文章

python tkinter, 通过lambda表达式传递参数到按钮的点击事件函数

mybatis 接口绑定方案及多参数传递

jquery如何绑定一个已有的方法并传递参数

tkinter的传递参数问题。。。

RN 如何给页面传参数

[Tkinter 教程04] Variable 类