我正在尝试从pygame转换为tkinter,因为它似乎比我想做的要好得多,尽管我遇到了一些困难。同时按下某个键和鼠标按钮时,我需要能够调用一个函数。在pygame中,它很简单,如下所示。
while not done:
for event in pygame.event.get():
keys = pygame.key.get_pressed()
mouse = pygame.mouse.get_pressed()
if event.type == pygame.QUIT:
done = True
if mouse[0]:
if keys[pygame.K_s]:
pos = pygame.mouse.get_pos()
// function
我知道在tkinter中,您可以执行c.bind("<Button-1>", function)
来注册鼠标单击,而c.bind("e", function)
来注册按键,但是由于按钮事件没有通过,因此我不确定如何同时获得两者通过按键
答案 0 :(得分:0)
不确定是否有绑定Button-1
和Key
的正式方法,但是也许您可以解决它。
import tkinter as tk
root = tk.Tk()
tk.Label(root,text="Hi I'm a label").pack()
class Bindings:
def __init__(self):
self.but_1 = False
root.bind("<Button-1>", self.mouse_clicked)
root.bind("<e>", self.e_clicked)
root.bind("<ButtonRelease-1>",self.mouse_release)
def mouse_release(self,event):
self.but_1 = False
def mouse_clicked(self,event):
self.but_1 = True
print ("Mouse button 1 clicked")
def e_clicked(self,event):
if self.but_1:
print ("Both keys clicked")
self.but_1 = False
else:
print ("Key E pressed")
Bindings()
root.mainloop()