Haskell/GTK2HSでグラフィカルコマンドラインを作成するにはどうすればよいですか?

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

  •  28-09-2019
  •  | 
  •  

質問

Haskellで最初の「実際のプログラム」を作成しようとしています(多項式の場合は積分を解決するもの)が、この部分に完全に困惑しています。

GHCIのような非常にシンプルなものを作りたいです:

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

私のプログラム出力が画像であることを除いて(LaTexを使用して数学的式をPNGに変える) - System.ioを使用してこれを行うことはできません。私がインストールすることができたGTK2HSではそれが可能だと思いますが、この入力/出力ダイアログを作成する方法を理解できません。

時間があればそれがどのように行われているかを教えてください。どうもありがとう!

役に立ちましたか?

解決

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

他のヒント

最初にバックエンドを実装する必要があると思います。つまり、コマンドを解析して出力画像を作成するためのコードを実装する必要があります。それが機能する場合、GUIを実装できます。基本的に、入力用のテキストエントリとテキストと出力用の描画ウィジェットが必要なものが必要です。 GUIプログラミングは(iMho)些細なことではないため、まずGTK / GTK2HSチュートリアル /紹介をご覧ください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top