Tratando de aprender a escribir aplicaciones con Gtk2Hs Tengo dificultades para cerrar la brecha entre el evento guiado Gtk2HS y el estado persistente de mi modelo. Así que para simplificar, digamos que tengo esta sencilla aplicaciónCómo lidiar con el estado de la aplicación en Gtk2Hs
module Main where
import Graphics.UI.Gtk
import Control.Monad.State
main = do
initGUI
window <- windowNew
button <- buttonNew
set button [buttonLabel := "Press me"]
containerAdd window button
-- Events
onDestroy window mainQuit
onClicked button (putStrLn ---PUT MEANINGFUL CODE HERE---)
widgetShowAll window
mainGUI
y el estado de mi solicitud es el número de veces que el botón ha sido presionado. Al ver otras publicaciones como this, confían en MVars o IORefs que no me parecen satisfactorias, porque es posible que en el futuro desee refabricar el código para que el estado viva en su propio contexto.
creo que la solución debe utilizar la mónada estado usando una función de paso como:
State $ \s -> ((),s+1)
pero no estoy seguro acerca de las implicaciones, cómo hacerlo en el código anterior, o incluso si esa mónada es la solución correcta para mi problema
Muchas gracias, ¡realmente fue una revelación! – fotNelton