7

我正在尝试在haskell中创建我的第一个“真实程序”(如果多项式可以解决积分问题),但我完全被这部分难住了:

我想做一些非常简单的东西,有点像 GHCi:

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

除了我的程序输出是图像(使用 LaTeX 将数学表达式转换为 PNG) - 所以我不能使用 System.IO 来做到这一点。我认为我已经设法安装了 gtk2hs,但我不知道如何进行这种输入/输出对话。

如果你有时间,请告诉我它是如何完成的。非常感谢!

4

2 回答 2

4

感谢 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
于 2010-11-27T20:52:40.730 回答
0

我认为你应该首先实现后端,即解析命令和创建输出图像的代码。如果可行,您就可以实现 GUI。基本上,您需要一些轻量级的输入文本条目和输出文本和绘图小部件。由于 GUI 编程(恕我直言)并非易事,您应该首先查看一些 GTK/gtk2hs 教程/介绍。

于 2010-11-27T09:29:06.770 回答