当鼠标悬停在pyFLTK中的小部件上而不是悬停在小部件上时,如何调用函数



我想在鼠标悬停在Fl_Widget上时调用一个函数,而在鼠标未悬停在小部件上时调用另一个函数。就像我的代码Fl_Input一样,当鼠标悬停在Fl_Input上而不是悬停时,我如何调用函数?

这是我的代码:

from fltk import *
win = Fl_Window(400,200)
win.label('Set Text') 
def enter(w):
fl_message('Enter')
def leave(w):
fl_message('Leave')
inp = Fl_Input (100, 10, 100, 20, 'Input: ' )
out = Fl_Output(100, 60, 100, 20, 'Output: ')
inp.when(FL_WHEN_ENTER_KEY)
inp.callback(enter)
win.end()
win.show()
Fl.run()

您知道pyFltk附带的测试脚本吗?特别是,有一个名为handle_events.py的示例应该适用于您的情况。你要做的基本上如下:

  1. 在Python中创建一个类,该类派生自你想处理事件
  2. 覆盖该小部件中的handle方法

这可能看起来如下:

class EventHandler(Fl_Input):
def __init__(self, X, Y, W, H, L):
Fl_Input.__init__(self, X, Y, W, H, L)

def handle(self, event):
if event == FL_ENTER:
fl_message('Enter')
return 1
elif event == FL_LEAVE:
fl_message('Leave')
return 1
else:
return 0

注意返回值:如果事件处理正确,则必须返回1,否则必须返回0。

祝好运

Andreas

最新更新