我目前正在使用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

最佳答案

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

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)
frame.pack() # <---------

root.mainloop()

09-26 05:13