如何通过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绑定传递更多参数的主要内容,如果未能解决你的问题,请参考以下文章