下面的一段代码应该报告鼠标点击事件,但从来没有报告过 Bx-Up 事件......这是一个错误还是我错过了什么?#!/usr/bin/python3# coding: UTF-8# Testing mouse events in tkinterimport tkinter as tkclass MyMouse: def __init__(self): def init_vars(): self.padx, self.pady = 40, 40 self.xsize, self.ysize = 800, 600 def create_window(): def create_canvas(wdth, hght): canvas = tk.Canvas(mywin, width=wdth, height=hght, bg='white') canvas.bind(sequence='<1>', func=self.b1) canvas.bind(sequence='<B1-Motion>', func=self.b1_motion) canvas.bind(sequence='<B1-Up>', func=self.b1_up) canvas.bind(sequence='<2>', func=self.b2) canvas.bind(sequence='<B2-Motion>', func=self.b2_motion) canvas.bind(sequence='<B2-Up>', func=self.b2_up) canvas.bind(sequence='<3>', func=self.b3) canvas.bind(sequence='<B3-Motion>', func=self.b3_motion) canvas.bind(sequence='<B3-Up>', func=self.b3_up) return canvas mywin = tk.Tk() mywin.title("Testing mouse events in tkinter") mywin.canvas = create_canvas(self.xsize, self.ysize) mywin.canvas.pack(side=tk.TOP, padx=self.padx, pady=self.pady, expand=True, fill=tk.BOTH) return mywin init_vars() self.mywin = create_window() self.mywin.mainloop() def b1(self, event): print('b1 called', (event.x, event.y), flush=True) def b1_motion(self, event): print('b1_motion called', (event.x, event.y), flush=True) def b1_up(self, event): print('b1_up called', (event.x, event.y), flush=True) def b2(self, event): print('b2 called', (event.x, event.y), flush=True)评论:我相信前面的问题在很大程度上是自给自足的,但程序不允许我添加更多评论。所以请提出问题,以便我可以根据需要添加更多评论。这篇文章是关于从未被称为...
1 回答
沧海一幻觉
TA贡献1824条经验 获得超5个赞
我没有B1-Up在文档中看到:http : //effbot.org/tkinterbook/tkinter-events-and-bindings.htm
但是,我确实看到了ButtonRelease-1。这是要绑定到的正确事件。
添加回答
举报
0/150
提交
取消
