我试图制作扫雷游戏。对于每个未分化的方块,我创建了一个按钮。
SELECT
当我在一个无差别的方格上按下鼠标左键时,我正在调用函数my_list = [[0 for i in range(9)] for j in range(9)]
all_buttons = []
def creaMatriz():
for y, row in enumerate(my_list):
buttons_row = []
for x, element in enumerate(row):
boton2 = Button(root, text="", width=6, height=3, command=lambda a=x, b=y: onButtonPressed(a, b))
boton2.grid(row=y, column=x)
buttons_row.append(boton2)
all_buttons.append(buttons_row)
def onButtonPressed(x, y):
all_buttons[y][x]['text'] = str(qwer[x][y]) # Some action!!!
....
,并在广场上出现一个数字或一个数字。
在无差别的方格上按鼠标右键,如何调用其他功能。我希望看到' M'在广场上。
答案 0 :(得分:3)
您需要绑定所需的键才能获得此功能。这是一个简单的概念:
result = str_extract_all(text_string_vec, "[0-9]{1,2}/10")
result = lapply(result, function(x) as.numeric(gsub("/10","", x)))
告诉我们您是否正在寻找它。
答案 1 :(得分:0)
您无需做任何特殊操作,只需单独绑定每个鼠标按钮而不是使用command
属性。
例如,让我们为鼠标左键和右键创建一个回调:
def onLeftClick(x, y):
print("you clicked on %x,%y" % (x, y))
def onRightClick(x, y):
print("you clicked on %x,%y" % (x, y))
接下来,我们可以使用bind
方法分别绑定到每个函数。由于我们正在添加自定义绑定,因此我们不想要设置按钮的command
属性。
def creaMatriz():
for y, row in enumerate(my_list):
buttons_row = []
for x, element in enumerate(row):
button = Button(root, text="", width=6, height=3)
...
button.bind("<1>", lambda event, x=x, y=y: onLeftClick(x,y))
button.bind("<3>", lambda event, x=x, y=y: onRightClick(x,y))