【问题标题】:Mouse event on tkinter python, didn't return an outputtkinter python上的鼠标事件,没有返回输出
【发布时间】:2018-11-05 07:24:12
【问题描述】:

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

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

【问题讨论】:

    标签: python tkinter event-handling


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-08
      • 1970-01-01
      • 2010-10-22
      • 1970-01-01
      • 2018-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多