Comment puis-je faire une ligne de commande graphique dans haskell / gtk2hs?

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

  •  28-09-2019
  •  | 
  •  

Question

Je suis en train de créer mon premier « vrai programme » en haskell (ce qui permet de résoudre si polynômes) Intégrales mais je suis tout à fait perplexes cette partie:

Je veux faire un peu de quelque chose de très simple comme GHCi:

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

sauf que mon sortie de programme est des images (en utilisant LaTeX pour transformer des expressions mathématiques en PNGs) - donc je ne peux pas le faire en utilisant System.IO. Je pense que ce sera possible avec gtk2hs que j'ai réussi à installer, mais je ne peux pas comprendre comment faire cette entrée / dialogue de sortie.

S'il vous plaît me montrer comment faire si vous avez le temps. Merci beaucoup!

Était-ce utile?

La solution

Nous avons réussi à trouver la solution suivante, grâce à 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

Autres conseils

Je pense que vous devez d'abord mettre en œuvre le back-end, à savoir le code pour l'analyse d'une commande et la création de l'image de sortie. Si cela fonctionne, vous pouvez ensuite mettre en œuvre l'interface graphique. En gros, vous avez besoin quelque chose de léger d'une entrée de texte pour la saisie et un texte et un widget de dessin pour la sortie. Comme la programmation GUI est (à mon humble avis) non trivial, vous devez d'abord regarder quelques tutoriels / introductions GTK / gtk2hs.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top