双Tkinter画布中的双游标

时间:2014-05-05 11:14:29

标签: python tkinter

我有两个画布显示图像(一个是源,另一个是略有修改)。 我想同步两个画布'游标,即当悬停在一个游标上时,光标也会在另一个位置显示。 我已经通过绘制自定义' plus'光标(2条相交的线),但我对结果不满意。 有没有办法假装'鼠标悬停在某个位置的画布上?

编辑: 我的相关代码,根据要求:

self.canvas_image.bind("<Motion>", self.processMouseEvent)

def processMouseEvent(self): 
     self.cursorSync.Sync(event)

2 个答案:

答案 0 :(得分:1)

Motion事件将分配一个x,y属性。为什么不做这样的事情,你的光标可以是place几何管理器可以管理的任何对象:

def move_cursor(event):
    cursor.place(x=event.x, y=event.y) # set x,y to cursor

root = Tk()

left = Canvas(root, width=100, height=100, bg='white')
right = Canvas(root, width=100, height=100, bg='black')
left.pack(fill=BOTH, expand=1, side=LEFT)
right.pack(fill=BOTH, expand=1, side=RIGHT)

cursor = Label(right, width=2, bg='red') # create cursor. this could be an image or whatever

left.bind('<Motion>', move_cursor)

mainloop()

答案 1 :(得分:0)

不,一次无法激活多个光标。您唯一的选择是通过在画布上绘制第二个光标或使用放在画布上的小部件来模拟第二个光标。