Frage

Ich versuche, mein erstes „richtiges Programm“ in Haskell (etwas, dass lösen Integrale, wenn Polynome) zu schaffen, aber ich vollständig mit diesem Teil davon stapfe mich:

Ich möchte etwas sehr einfach ein bisschen wie GHCi machen:

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

, außer dass mein Programm ausgegeben werden, Bilder (mit LaTeX mathematischen Ausdrücke in PNGs drehen) - so kann ich dies mit System.IO nicht tun. Ich denke, dass es möglich sein wird, mit gtk2hs, die ich habe es geschafft, zu installieren, aber ich kann nicht herausfinden, wie man diese Eingabe / Ausgabe-Dialog zu machen.

Sie mir bitte zeigen, wie es gemacht wird, wenn Sie die Zeit haben. Vielen Dank!

War es hilfreich?

Lösung

Wir haben es geschafft mit der folgenden Lösung zu kommen, dank 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

Andere Tipps

Ich glaube, Sie sollten zuerst das Backend implementieren, das heißt der Code für einen Befehl Parsen und das Ausgangsbild. Wenn das funktioniert, könnten Sie dann die GUI implementieren. Grundsätzlich müssen Sie etwas Licht einen Texteintrag für Eingang und einen Text und Zeichnung Widget für die Ausgabe. Als GUI-Programmierung (IMHO) nicht trivial ist, sollten Sie bei einigen GTK / gtk2hs tutorials / Einführungen ersten Blick.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top