Haskell'de keypress olayı nasıl taklit edilir/taklit edilir?Haskell'de keypress olayı nasıl taklit edilir/taklit edilir?
Gui'mde pencerede bir dizi metin girişi yapmak için kullanmak istediğim bir ekran tuş takımım var. Tuş takımı, düğme widget'larından oluşur ve yapmak istediklerim onButtonClicked
işleyicisine keyPressEvent
göndermelidir, böylece uygun karakter/sayı, odak içeren metin girişine yazılır. Ben Graphics.UI.Gtk.Gdk.Events
bakarak başladık ve ben bu olayı göndermesine nasıl çözemedim bir tuşa basma olayı
Event my1Event = Key True True Graphics.UI.Gtk.Gdk.Events.currentTime [] False False False 0xffb1 "KP_1" Nothing
yaptı. Her neyse, olayın kullanımdan kaldırıldığı ve EventM kullanması gerektiği ortaya çıkıyor. Graphics.UI.Gtk.Abstract.Widget
'da widgetEvent :: WidgetClass self => self -> EventM t Bool
'u buldum. Api'de:
Nadiren kullanılan işlev. Bu işlev, bir widget üzerindeki olay sinyallerini yaymak için kullanılır (bu sinyalleri kullanmadan bu sinyaller asla verilmemelidir). Bir olayı sentezlemek istiyorsanız, bu işlevi kullanmayın; bunun yerine, mainDoEvent öğesini kullanın; böylece etkinlik, olay sırasındaki gibi davranacaktır.
yüzdenGraphics.UI.Gtk.General.General
içinde
mainDoEvent :: EventM t()
baktı ama bir tuş oluşturmak için
EventM
kullanmak ve kullanılan
mainDoEvent
bir örneğini bulamadık nasıl olarak emin değilim. Bir kimse bana
EventM
kullanarak bir tuşa basma olayını nasıl oluşturacağımı ve bunu
mainDoEvent
'a nasıl ileteceğimi veya başka bir şekilde nasıl yapılacağını önerebilir mi? Teşekkürler.
Bu soru, muhtemelen GTK hakkında Haskell'den daha fazlasıdır. Buradaki önemsiz bir FFI sarmalayıcı aracılığıyla ortaya çıkan görünen API için [here] (http://developer.gnome.org/gtk/2.24/gtk-General.html#gtk-main-do-event) adresine bakın. vaka. –