wvogel日記

自分用の技術備忘録が多めです.

入力取り出し

wxHaskellで、エディットコントロールに入力した文字列を取り出すにはどうしたら良いのか調べていました。
Hoogleでは情報がヒットしないので調べ辛い....


色々調べた結果、
textDialogが使えそう。

textDialog :: Window a -> String ->
                     String -> String -> IO String

ふむ。
Stringがいっぱい。
とりあえず試してみた。

Windowは型クラス。
PropやPanel,Frameなどを指定します。

import Graphics.UI.WX
import Graphics.UI.WXCore

main = start gui

gui = do
 f <- frame [text := "test"]
 p <- panel f []
 str <- textDialog p "title" "mainTitle" ""

 btn <- button p [text := str,
                  on command := return ()]
 set f [layout := container p $ column 0 [widget btn]
       ,clientSize := Size 300 200]

簡単なサンプルとして、上記のようなコードを書きました。
思うとおり動けば、
ボタンの中の文字列が入力文字列になるはずです。


コンパイルして実行すると、まず次のようなダイアログが。

ここに、試しに
『wvogel日記』
とタイプしてOKボタン。
すると、下のような画面に切り替わります。

おお、ちゃんと切り替わっていますね!!


今気がついたのですが、
これを使えばアプリケーションにおける簡単なパスワード認証や、ユーザー切り替えが可能だ....


ただ、ダイアログなので改行で区切られた複数行の入力を受けとることは出来ません。
私が今必要としている範囲ではこれで充分ですが、
そちらもいつかちゃんと調べなければ。