Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface Haskell中gui编程的简单应用程序_User Interface_Haskell - Fatal编程技术网

User interface Haskell中gui编程的简单应用程序

User interface Haskell中gui编程的简单应用程序,user-interface,haskell,User Interface,Haskell,我创建了一个简单的haskell程序来显示窗口: module Main where import Graphics.UI.Gtk import Graphics.UI.Gtk.Glade data GUI = GUI { mainWin :: Window, clickMe :: Button, display :: Label } loadGlade :: IO GUI loadGlade = do Just xml <

我创建了一个简单的haskell程序来显示窗口:

module Main where

import           Graphics.UI.Gtk
import           Graphics.UI.Gtk.Glade

data GUI = GUI {
  mainWin :: Window,
  clickMe :: Button,
  display :: Label
  }

loadGlade :: IO GUI
loadGlade = do
  Just xml <- xmlNew "gladeFile.glade"
  mw <- xmlGetWidget xml castToWindow "wdwFirst"
  bc <- xmlGetWidget xml castToButton "btnClick"
  ld <- xmlGetWidget xml castToLabel "lblDisplay"

  return $ GUI mw bc ld

connectGui :: GUI -> IO  (ConnectId Button)
connectGui gui = do
  onDestroy (mainWin gui) mainQuit
  onClicked (clickMe gui) (guiAnswer gui)

guiAnswer :: GUI -> IO()
guiAnswer gui =
  labelSetText (display gui) "WELCOME!!"


main :: IO ()
main = do
  initGUI
  gui <- loadGlade
  connectGui gui
  mainGUI
modulemain其中
导入Graphics.UI.Gtk
导入Graphics.UI.Gtk.Glade
数据GUI=GUI{
mainWin::窗口,
点击我::按钮,
显示::标签
}
loadGlade::IO GUI
loadGlade=do

只是xml您忘记了实际显示窗口。函数调用,如

    widgetShowAll window
好像不见了

编辑

这一主要功能应发挥作用:

main::IO()
main=do
initGUI

你是什么意思?是否有一个实际的函数
widgetShowAll
,或者这只是一个建议?有一个函数名为。这显示了您需要的功能。(遗憾的是,本教程已经过时。)
    widgetShowAll window