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