¿Cómo puedo hacer una gráfica de línea de comandos en Haskell / Gtk2Hs?

StackOverflow https://stackoverflow.com/questions/4281984

  •  28-09-2019
  •  | 
  •  

Pregunta

Estoy intentando crear mi primer "programa real" en Haskell (algo que resuelve integrales si polinomios), pero estoy completamente perplejos con esta parte de ella:

Quiero hacer algo un poco muy simple como GHCi:

> user input
program output
> user input
program output
> user input
program output
> 

excepto que mi salida del programa es imágenes (utilizando LaTeX para convertir expresiones matemáticas en PNG) - así que no puedo hacer esto utilizando System.IO. Creo que va a ser posible con Gtk2Hs la que he logrado instalar, pero no puedo encontrar la manera de hacer de este diálogo de entrada / salida.

Por favor, muéstrame cómo se hace si usted tiene el tiempo. ¡Muchas gracias!

¿Fue útil?

Solución

arregló para llegar a la siguiente solución, gracias a ClaudiusMaximus.

module Main where

import Graphics.UI.Gtk

main = do
 initGUI

 ----------------

 win <- windowNew
 onDestroy win mainQuit

 vb <- vBoxNew False 3
 log <- vBoxNew False 2

 sc <- scrolledWindowNew Nothing Nothing
 scrolledWindowSetPolicy sc PolicyNever PolicyAutomatic

 sw <- layoutNew Nothing Nothing

 en <- entryNew

 ----------------

 scrolledWindowAddWithViewport sc log
 boxPackStart vb sc PackGrow 0
 boxPackStart vb en PackNatural 0
 set win [ containerChild := vb ]

 en `onEntryActivate` do
   txt <- entryGetText en
   entrySetText en ""
   l <- labelNew (Just txt)
   boxPackStart log l PackNatural 0
   widgetShowAll log
   Just ran <- scrolledWindowGetVScrollbar sc
   adj <- rangeGetAdjustment ran
   max <- adjustmentGetUpper adj
   adjustmentSetValue adj max

 ----------------

 widgetShowAll win
 mainGUI

Otros consejos

creo que primero debe aplicar el back-end, es decir, el código para analizar un comando y la creación de la imagen de salida. Si funciona, entonces podría poner en práctica la interfaz gráfica de usuario. Básicamente, se necesita algo de luz una entrada de texto de entrada y un texto y widget de dibujo para la salida. Como la programación GUI es (en mi humilde opinión) no es trivial, primero debe mirar a algunos GTK / Gtk2Hs tutoriales / introducciones.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top