Tkinter мышь и нажатие клавиши одновременно - PullRequest
0 голосов
/ 18 марта 2019

Я пытаюсь перейти от 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), чтобы зарегистрировать нажатия клавиш, но я не уверен, как получить их одновременно, поскольку событие кнопки не проходит через нажатия клавиш

1 Ответ

0 голосов
/ 18 марта 2019

Не уверен, что существует официальный метод связывания 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...