相关疑难解决方法(0)

对Tkinter bind_class感到困惑

我定义了GCanvas,它是Canvas的扩展.我的目的是在类级别绑定到GCanvas.它不起作用.

我也尝试绑定到tk.Canvas,它也不起作用.绑定到rootGCanvas实例或与GCanvas实例绑定工作正常.(这些替代方案对我来说都没有用,但我只是试着看看发生了什么.)运行OS X,El Capitan.

import Tkinter as tk

class GCanvas(tk.Canvas, object):

    def __init__(self, master, **kwargs):
        tk.Canvas.__init__(self, master, kwargs)

    @staticmethod
    def enter(e):
        print "enter", e.widget, e.x, e.y

    @staticmethod
    def leave(e):
        print "leave", e.widget

    @staticmethod
    def motion(e):
        print "motion", e.widget, e.x, e.y

approach = "bindinstance"

root = tk.Tk()
gc = GCanvas(root, width=400, height=300)
print "root is", root, "gc is", gc
gc.pack()

if approach == "bindGCanvas":
    print "binding to GCanvas"
    root.bind_class(GCanvas, '<Enter>', GCanvas.enter)
    root.bind_class(GCanvas, '<Leave>', GCanvas.leave)
    #root.bind_class(GCanvas, '<Motion>', GCanvas.motion)
elif approach …
Run Code Online (Sandbox Code Playgroud)

tkinter python-2.7 tkinter-canvas

2
推荐指数
1
解决办法
1029
查看次数

标签 统计

python-2.7 ×1

tkinter ×1

tkinter-canvas ×1