2009-06-27 11 views
1

私は最初のgtk2hs + gladeアプリケーションを書いています。プログラムからの出力を表示するためにtextviewを使っています。私が考えたスクロールの代わりに、テキストビューはテキストを再設定するたびに大きくなり、消えるまでボタンを小さくしますが、スクロールバーは決してポップアップせず、スクロールしません。私はそれをスクロールさせるために何か特別なことをするつもりですか?ここでは、私が現時点で使用している主な機能は、汚れたコードを許して、私は後で家をきれいにするつもりです。 :)Gtk2hsとHaskellの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 

他に必要な場合は、コメントでリクエストしてください。私は何か他のものを提供する必要があるかどうかはわかりません。

空き地ファイルがここに表示さには大きすぎるが、私はここでそれを貼り付けた場合には、誰かがそれを必要とする:http://hpaste.org/fastcgi/hpaste.fcgi/view?id=6310#a6310

+0

ここに含めるにはGlade XMLのサイズは十分ですか? – ephemient

+0

貼り付けられたgladeファイルにリンクするように編集されました。 – Rayne

答えて

3

私はメーリングリストgtk2hsにアクセルと話した後、私自身の問題を解決するために管理してきました。

TextViewsは、1行のテキストまたはスクロールバー付きの複数行のTextViewになるように設計されています。スクロール機能が必要な場合は、TextViewをスクロールウィンドウに配置する必要があります。 TextViewをScrolled Windowに配置することで問題を解決しましたが、今は完璧に動作します。

関連する問題