Gtk2hsとHaskellでのTextViewでのスクロールの問題
質問
私は私の最初gtk2hs +空き地アプリケーションを書いている、と私はプログラムからの出力を表示するのTextViewを使用しています。代わりに、スクロールの私は、デフォルトの動作になるはずだったと思っている、TextViewには、私は、テキストを再設定し、より大きな毎回を取得し、彼らが消えるまで、それ以下の私のボタンが小さくなりますが、スクロールバーがポップアップしていない、そしてそれは決してスクロールありません。私はそれをスクロールするために得るために特別な何かを行うことになっているだろうか?ここで私は、現時点で使用している主な機能は、汚いコードを許して、私は家きれいに後でつもり。 :)
main :: FilePath -> IO ()
main gladepath = do
initGUI
-- Create inital game state
st <- newIORef (State "" "" "" 0 0 0)
-- Get handles to all needed widgets from Glade file
Just xml <- xmlNew gladepath
mw <- xmlGetWidget xml castToWindow "mainWindow"
sw <- xmlGetWidget xml castToWindow "window2"
mb <- xmlGetWidget xml castToButton "fireButton"
ng <- xmlGetWidget xml castToButton "nbutton"
mv <- xmlGetWidget xml castToTextView "textview1"
but <- xmlGetWidget xml castToButton "button1"
ab <- xmlGetWidget xml castToAboutDialog "aboutdialog1"
menu <- xmlGetWidget xml castToMenuItem "menuitem3"
about <- xmlGetWidget xml castToMenuItem "imagemenuitem10"
quitb <- xmlGetWidget xml castToMenuItem "menuitem3"
p1name <- xmlGetWidget xml castToEntry "entry1"
p2name <- xmlGetWidget xml castToEntry "entry2"
spin <- xmlGetWidget xml castToSpinButton "spinbutton1"
sett <- xmlGetWidget xml castToMenuItem "menuitem2"
p1lab <- xmlGetWidget xml castToLabel "label4"
p2lab <- xmlGetWidget xml castToLabel "label5"
cylab <- xmlGetWidget xml castToLabel "label6"
-- Handle events and such
buff <- textViewGetBuffer mv
onActivateLeaf quitb mainQuit
onResponse ab $ \resp ->
case resp of
ResponseClose -> widgetHide ab
_ -> widgetHide ab
onActivateLeaf about $ widgetShow ab
onActivateLeaf sett $ widgetShowAll sw
onDelete sw $ \_ -> widgetHide sw >> return True
onClicked but $
initalize sw p1name p2name spin st p1lab p2lab cylab buff
onClicked ng $ widgetShowAll sw
onDelete ab $ \_ -> widgetHide ab >> return True
onClicked mb $ fireButton st sw buff cylab
onActivateLeaf menu $ widgetDestroy mw
onDestroy mw mainQuit
widgetShowAll mw
mainGUI
あなたが何かを必要とする場合は、、コメントでそれをリクエストしてください。私は私が何かを提供する必要がある場合はわからない。
空き地ファイルは、ここで示すことは大きすぎるが、私はここでそれを貼り付けた場合には、誰かがそれを必要とする:<のhref = "http://hpaste.org/fastcgi/hpaste.fcgi/view?id=6310#a6310 "REL =" nofollowをさnoreferrer "> http://hpaste.org/fastcgi/hpaste.fcgi/view?id=6310#a6310 の
解決
私はメーリングリストgtk2hsにアクセルと話した後、私自身の問題を解決するために管理してます。
彼らはテキストの単一行、またはスクロールバーを持つ複数行のTextViewことができるように、TextViewsが設計されています。あなたは、スクロール機能が必要な場合は、スクロールウィンドウにのTextViewを配置する必要があります。私はスクロールウィンドウに私のTextViewを配置することによって、私の問題を解決し、それが今で完璧に動作します。