возникли проблемы с функцией привязки в Python Gui Tkinter - PullRequest
0 голосов
/ 24 июня 2019

Этот код является учебным пособием YouTube .Данный код должен печататься правой кнопкой мыши на консоли и таким же образом для левой кнопки, но это не так.Я думаю, что проблема с функцией привязки.

Я использую Python 3.7, в котором уже есть пакет tkinter, что я могу сделать, чтобы он заработал, большое спасибо.

from tkinter import *

root = Tk()

def leftclick(event):
    print("left")

def rightclick(event):
    print("right")

frame = Frame(root, width=300, height=300)    
frame.bind("button-1", leftclick)    
frame.bind("button-2", rightclick)
frame.pack()

root.mainloop()

Я ожидаю, что программа напечатает'left' в консоли при щелчке левой кнопкой мыши внутри окна tk и так же при щелчке правой кнопкой мыши

1 Ответ

1 голос
/ 24 июня 2019

Во-первых, как уже отмечалось в комментариях, события кнопки мыши должны <...>. О том, что rightclick не работает: это потому, что даже правая кнопка мыши имеет значение <Button-3>, тогда как <Button-2> - средняя кнопка мыши (или нажатие на колесико мыши).

frame.bind("<Button-1>", leftclick)
frame.bind("<Button-3>", rightclick)

Это может быть немного не интуитивно понятно, если вы думаете о правой кнопке мыши как о «вторичной» кнопке, но имеет смысл, если вы просто перечисляете кнопки слева направо. Это AFAIK также соответствует всем (большинству?) Другим фреймворкам и языкам пользовательского интерфейса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...