如何在Haskell中模拟/欺骗按键事件?
我在我的Gui中有一个屏幕数字小键盘,我想用它来写入窗口中的多个文本输入框。该键盘由按钮部件组成,我想要做的是让
我在我的Gui中有一个屏幕数字小键盘,我想用它来写入窗口中的多个文本输入框。该键盘由按钮部件组成,我想要做的是让
onButtonClicked
处理程序发送一个keyPressEvent
,以便将适当的字符/数字写入具有焦点的文本输入框。我开始查看Graphics.UI.Gtk.Gdk.Events
并创建了一个按键事件。Event my1Event = Key True True Graphics.UI.Gtk.Gdk.Events.currentTime [] False False False 0xffb1 "KP_1" Nothing
我无法弄清如何分派此事件。无论如何,事实证明Event已经被弃用,应该使用EventM。我在Graphics.UI.Gtk.Abstract.Widget
中找到了widgetEvent :: WidgetClass self => self -> EventM t Bool
。在api中说:
很少使用的函数。此函数用于在小部件上发射事件信号(如果不使用此函数,则永远不应该发射这些信号)。如果您想合成事件,请勿使用此函数;而是使用mainDoEvent,以便事件的行为就像在事件队列中一样。
因此,我查看了Graphics.UI.Gtk.General.General
中的mainDoEvent :: EventM t ()
,但不确定如何使用EventM
来创建按键事件,并且找不到mainDoEvent
的使用示例。有人能指导我如何使用EventM
创建按键事件并将其传递给mainDoEvent
或其他方法吗?谢谢。