Ниже приведен простой пример использования gtk2hs, который добавляет метку, а затем обработчик щелчка по ней.Обработчик buttonPressEvent никогда не вызывается при нажатии на метку.Кнопка может быть помещена в контейнер, но ... контейнеры запускают сигнал нажатия кнопки?
У меня есть прямоугольная область, в которой есть какой-то текст (в настоящее время используется метка), который мне нужно знать, еслипользователь нажал на него.Я не хочу, чтобы это выглядело как кнопка.
{-# LANGUAGE PackageImports #-}
import Graphics.UI.Gtk
import Graphics.UI.Gtk.Gdk.EventM
import Graphics.UI.Gtk.Gdk.GC
import "mtl" Control.Monad.Trans(liftIO)
main = do
initGUI
window <- windowNew
window `onDestroy` mainQuit
label0 <- labelNew $ Just "static label"
widgetAddEvents label0 [ButtonPressMask] -- is this necessary? Still doesn't work with it, though
label0 `on` buttonPressEvent $ tryEvent $ do
liftIO $ putStrLn "static label clicked"
containerAdd window label0
widgetShowAll window
mainGUI