tkinter python上的鼠标事件,未返回输出

时间:2018-11-05 07:24:12

标签: python tkinter event-handling

我目前正在使用Visual Studio Code学习如何使用tkinter,我确实在youtube上找到了一些教程来创建鼠标事件函数here。我完全是编程方面的新手。

这是我的代码:

from tkinter import *

root = Tk()

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

def middleClick(event):
    print("middle")

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

frame = Frame(root, width=300, height=250)
frame.bind("<Button-1>", leftClick)
frame.bind("<Button-2>", middleClick)
frame.bind("<Button-3>", rightClick)

root.mainloop()

我不知道为什么在框架内的某处单击时没有输出。当我单击鼠标左键或鼠标右键时,在输出窗口中应返回“ left”,“ right”,“ middle”,我也确实检查了终端窗口,并且那里什么也没有返回。查看上面的youtube链接,以获取我在做什么的参考。

这是终端输出:

  

PS C:\ Users \ abdull \ Documents !!代码\单个文件> cd'c:\ Users \ abdull \ Documents !!代码\单个文件”; $ {env:PYTHONIOENCODING} ='UTF-8'; $ {env:PYTHONUNBUFFERED} ='1'; &'C:\ Users \ abdull \ AppData \ Local \ Programs \ Python \ Python37-32 \ python.exe''c:\ Users \ abdull.vscode \ extensions \ ms-python.python-2018.9.2 \ pythonFiles \ experimental \ ptvsd_launcher.py''59359''c:\ Users \ abdull \ Documents !!代码\单个文件\ gtktest.py'

ps:对不起,我的语法不好,(第二语言)

操作系统:Windows 10 鼠标= Logitech M331

1 个答案:

答案 0 :(得分:3)

您的框架未在ui中放置/渲染。您需要在其上调用pack方法:

def completeEither[E <: ServiceError, R: ToEntityMarshaller]
(statusCode: StatusCode, either: => Either[E, R])(
  implicit mapper: ErrorMapper[E, HttpError]
): Route = {
  either match {
    case Left(value) => complete(statusCode, ErrorResponse(code = value.code, message = value.message))
    case Right(value) => complete(value)
  }
}