当鼠标悬停而不是 pyFLTK 中的小部件时如何调用函数?
Posted
技术标签:
【中文标题】当鼠标悬停而不是 pyFLTK 中的小部件时如何调用函数?【英文标题】:How to call a function when mouse over and not over a widget in pyFLTK? 【发布时间】:2021-05-27 09:51:06 【问题描述】:我想在鼠标悬停在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()
【问题讨论】:
【参考方案1】:您知道 pyFltk 附带的测试脚本吗?特别是,有一个名为 handle_events.py 的示例应该适用于您的情况。你要做的基本上是以下几点:
-
在 Python 中创建一个类,该类派生自它的小部件
你想处理事件
覆盖该小部件中的句柄方法
这可能如下所示:
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。
祝你好运
安德烈亚斯
【讨论】:
以上是关于当鼠标悬停而不是 pyFLTK 中的小部件时如何调用函数?的主要内容,如果未能解决你的问题,请参考以下文章
当鼠标悬停在 Firefox 中的嵌入式 iframe 上时,防止父页面滚动