سؤال

وأنا أكتب 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 "يختلط =" noreferrer نوفولو "> http://hpaste.org/fastcgi/hpaste.fcgi/view؟id=6310#a6310

هل كانت مفيدة؟

المحلول

ولقد تمكنت من حل مشكلة بلدي بعد أن تحدث مع أكسل على gtk2hs القائمة البريدية.

صممت

وTextViews بحيث يمكن أن يكون سطر واحد من النص، أو TextView متعدد الأسطر مع أشرطة التمرير. إذا كنت تريد التمرير قدرات، لديك لوضع TextView في نافذة تمريره. أنا تحل مشكلتي عن طريق وضع بلدي TextView في نافذة تمريره، وأنها تعمل تماما الآن.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top