haskell GUI

发布于 2022-08-17 02:11:02 字数 836 浏览 26 评论 4

1. 最新版的GHC
2. 最新版的wxhaskell
3. 系统: windows 2003
4. 代码如下:

module Main where
import Graphics.UI.WX

main :: IO ()
main = start gui

gui :: IO ()
gui = do
  f <- frame [text := "Hello World!"]
  st <- staticText f [text := "Hello baby!"]
  b <- button f [text := "Button!"]
  set f [layout :=
          row 0 [widget st, widget b]
        ]
  return ()

-------------------------------------------------------------------
编译: ghc.exe -package wx -o gui.exe gui.hs

问题: 运行gui.exe 弹出窗体, 如果用鼠标接触窗体, 窗体会自动消失(程序退出).
请问这是什么原因导致的?? 还是程序的原因? 谢谢.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

别想她 2022-08-20 13:30:43

要不你用 ghc --make ttt.hs 编译一下看看。
我一般都用这个命令。

追我者格杀勿论 2022-08-20 06:42:03

那应该是你的环境有问题了。
刚试了一下,我机器上是没有问题的。

世界和平 2022-08-19 22:18:16

这个我试了, 还是不行, 现在弄不清是wxhaskell模块的问题 还是其他什么问题
比如一个最简单的例子 只要鼠标接触在窗体上, 程序自动退出 代码如下:

module Main where

import Graphics.UI.WX

main :: IO ()
main = start gui

gui :: IO ()
gui = do
  frame [text := "Hello World!"]
  return ()

http://en.wikibooks.org/wiki/Haskell/GUI 看到的.
我在wxhaskell 网站上 http://haskell.org/haskellwiki/WxHaskell/Quick_start  测试的例子也是不行.
我目前了解wxhaskell 是目前比较好的GUI 组件.  如果有其他好用的, 希望也给推荐一下. 谢谢.

妥活 2022-08-18 07:52:51

wxWidgets 我不太熟,其实你可以换个思路,
不要从 0 开始写一个对的出来,可以找一个正确的例子删减掉一部分内容。

你试试加一个 panel,然后把 statisText 和 button 都放到 panel 上看看:

  1.   f <- frame [text := "Hello World!"]
  2.   p <- panel  f []
  3.   st <- staticText p [text := "Hello baby!"]
  4.   b <- button p [text := "Button!"]

复制代码

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文