python - 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
解决方案
您的框架未在 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()
推荐阅读
- python - 为什么 `toml.load(f)` 在 Windows 下(但在 Linux 上没有)出现此文件失败?
- phpunit - PHPUnit - 为什么期望方法调用不起作用?
- java - ArrayList 重复
- python - 加速 Matplotlib
- java - 为什么从 xml 资源中获取字符串并以编程方式获取它?
- php - WooCommerce REST API 使用 meta_data 批量创建产品
- r - 如何根据相同的输入使 renderPlot 在另一个反应之前发生
- mongodb - 一次更新 MongoDB 中的多个文档
- ios - 静态/动态库中的运行时 ObjC 符号冲突
- zabbix - zabbix_agentd 的主机名被更改是不断触发