首页 > 解决方案 > tkinter python上的鼠标事件,没有返回输出

问题描述

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

这是我的代码:

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()

我不知道为什么当我点击框架内的某个地方时没有输出。当我单击鼠标左键或中键时,应在输出窗口中返回“左”“右”“中”,我也确实检查了终端窗口,但没有返回任何内容。检查上面的 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 鼠标 = 罗技 m331

标签: pythontkinterevent-handling

解决方案


您的框架未在 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()

推荐阅读