标签: wxhaskell

wxHaskell和Gtk2HS的相对优点是什么?

哪个更适合用Haskell,wxWidgets(通过wxHaskell)或GTK(通过Gtk2HS)开发GUI应用程序?

各自的优点和缺点是什么?它是否会根据您所针对的平台而有所不同(我主要是在OS X上工作,但我希望我的程序也可以在Linux和Windows上运行)?

user-interface haskell wxhaskell gtk2hs

20
推荐指数
1
解决办法
2738
查看次数

运行wxHaskell的问题(Windows)

页面:(http://en.wikibooks.org/wiki/Haskell/GUI)描述了运行wx代码,可以安装wx然后必须"用GHC注册wxHaskell" - 但我认为wxHaskell的二进制安装程序(http://wxhaskell.sourceforge.net/download.html)会自动执行此操作吗?

我安装了wx-config,然后安装了wxPack和wxHaskell.然后做了wx和wxcore的cabal安装.我正在从Leksah运行一些wx演示,这些演示看起来非常好 - 但是他们有一些奇怪的错误(我找到了一个所谓的解决方案:"wxhaskell-labels-cant-display-full-text"),但我想尝试一些来自GHCi的事情.

我尝试运行他们的简单演示,以及错误:

D:\csPlangs\Haskell\play>ghci -package wx wxGui1.hs
GHCi, version 7.0.3: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package array-0.3.0.2 ... linking ... done.
Loading package stm-2.2.0.1 ... linking ... done.
Loading package bytestring-0.9.1.10 ... linking ... done.
Loading package containers-0.4.0.0 ... linking ... done.
Loading package Win32-2.2.0.1 ... linking ... done.
Loading package filepath-1.2.0.0 ... linking ... …
Run Code Online (Sandbox Code Playgroud)

haskell wxhaskell

14
推荐指数
1
解决办法
822
查看次数

Haskell中的屏幕截图?

是否可以在Windows环境中使用Haskell捕获屏幕(或窗口)?(即每隔几分钟拍摄一次屏幕截图).如果是这样,怎么会这样做(再次,在Haskell中,对于Windows环境)?

更多信息:我是Haskell的初学者.一位朋友希望通过为我的会计师事务所鞭打一些程序来削减开发成本,但他坚持认为我使用的是Haskell.他想要一个能够监控不同Windows XP工作站桌面的工具.它可能必须是客户端/服务器类型的应用程序.他只需要监控桌面活动,因此他不想要任何已经上市的昂贵管理软件.我已经筛选了大量文档,并且只能找到wxHaskell,但我在捕获屏幕时找不到太多,特别是对于Windows环境.

windows haskell wxhaskell

12
推荐指数
3
解决办法
1638
查看次数

在Mac OS X上静态链接wxHaskell

我想在Mac OS X上分发一个wxHaskell应用程序.如何创建可以独立使用的Mac OS X应用程序而无需用户安装任何额外的库?

我注意到了为Mac OS X 制作捆绑包的cabal-macosx项目.app.当我构建示例wxHello应用程序时,应用程序包在我的机器上正常工作(添加extra-lib-dirs: /usr/lib.cabal文件后).但是当我在另一台机器上试用它时,我得到了错误:Dyld Error Message: Library not loaded: /Users/binil/.cabal/lib/wxc-0.90.0.3/ghc-7.0.4/libwxc.dylib.

macos haskell wxhaskell ghc static-linking

8
推荐指数
1
解决办法
381
查看次数

不能让wxHaskell在Mac上使用ghci工作

我正在尝试使用函数运行一个示例.EnableGUI

% ghci -framework Carbon Main.hs

*Main> enableGUI >> main
Run Code Online (Sandbox Code Playgroud)

这是我得到的而不是一个工作程序:

2013-01-14 00:21:03.021 ghc[13403:1303] *** Assertion failure in +[NSUndoManager _endTopLevelGroupings], /SourceCache/Foundation/Foundation-945.11/Misc.subproj/NSUndoManager.m:328
2013-01-14 00:21:03.022 ghc[13403:1303] +[NSUndoManager(NSInternal) _endTopLevelGroupings] is only safe to invoke on the main thread.
2013-01-14 00:21:03.024 ghc[13403:1303] (
    0   CoreFoundation                      0x00007fff8c8ea0a6 __exceptionPreprocess + 198
    1   libobjc.A.dylib                     0x00007fff867243f0 objc_exception_throw + 43
    2   CoreFoundation                      0x00007fff8c8e9ee8 +[NSException raise:format:arguments:] + 104
    3   Foundation                          0x00007fff884966a2 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 189
    4   Foundation                          0x00007fff884fc8b7 +[NSUndoManager(NSPrivate) _endTopLevelGroupings] + 156
    5   AppKit                              0x00007fff8ecb832d …
Run Code Online (Sandbox Code Playgroud)

wxwidgets haskell macos-carbon wxhaskell nsundomanager

6
推荐指数
1
解决办法
352
查看次数

使用wxhaskell绘制缩放位图

图像浏览器实例说明如何显示在一个ScrolledWindow的图像.

如果我想在可用空间中显示图像,根据需要缩放位图,该怎么办?

我的google-fu在这一次失败了.

编辑:我以为我有一些东西scrolledWindowSetScale,但看起来它在这里没有帮助.

wxwidgets haskell bitmap scale wxhaskell

5
推荐指数
1
解决办法
470
查看次数

putStrLn不会打印到控制台

我正在试验wxHaskell.我无法在ghci下运行应用程序,所以我必须使用应用程序来测试它.我想用println调试来测试程序.但是,似乎putStrLn在GUI中不起作用:

{-# LANGUAGE Haskell2010 #-}

module Main where

import Graphics.UI.WX

drawUI dc view = do 
  circle dc (point 10 10) 5 [penKind := PenSolid, color := red]
  putStrLn "painted"  

helloGui :: IO ()
helloGui = do
  f <- frame [
    text := "Example", 
    resizeable := False, 
    bgcolor := white,
    layout := space 400 300,
    on paint := drawUI]
    return ()

main :: IO ()
main = do
  putStrLn "Started"
  start helloGui
Run Code Online (Sandbox Code Playgroud)

如果我评论出来启动helloGui,一切都打印得很好.但是,如果我将其返回,则不会打印任何内容,但会显示窗口.这有什么不对?

haskell wxhaskell

5
推荐指数
1
解决办法
1749
查看次数

wx haskell拖放示例

我正在寻找一个wx haskell拖放示例.我还没找到.

有空吗?还是提示?

至今:

  • 我可以看到一个on drag事件(但没有"在下降")
  • 鼠标只是给left up目标
  • 我看到一些注释,我应该将一个drop target附加到object上,但是我看不到它是如何被调用的:

    Graphics.UI.WXCore.DragAndDrop

    L 51

    - | 创建'DropSource'.然后'dragAndDrop'用'DataObject'替换target的'DataObject'.

    dropSource :: DataObject a - > Window b - > IO(DropSource())

  • 我看不到Graphics.UI.WXCore.DragAndDrop上面的WX层在哪里

  • 这个(太)老了我猜:[0]:http://bb10.com/haskell-wxhaskell-general/2007-08/msg00035.html

无论如何,现在相当模糊......


编辑:这是我现在所处的位置:在拖动时不要激活,所以也没有dragAndDrop(在xinput上的鼠标就在那里看看dragger是怎么回事)(就是我从[O]得到的),但我不知道从这里得到事件)

--- test where DnD from yinput to xinput
module Main where

import CustoWidget
import Graphics.UI.WX hiding (empty)
import Data.Graph.Inductive
import Data.Maybe
import Control.Monad
import Graphics.UI.WX.Events
import Graphics.UI.WXCore.WxcClassesMZ
import Graphics.UI.WXCore.WxcClassesAL
import Graphics.UI.WXCore.DragAndDrop
import Graphics.UI.WXCore.Events
import Debug.Trace
main
  = start ballsFrame
  -- …
Run Code Online (Sandbox Code Playgroud)

haskell wxhaskell

5
推荐指数
1
解决办法
737
查看次数

如何重新分发wxHaskell应用程序?

我正在使用ghc 7.6.3.我从这里安装了wxHaskell:https://github.com/wxHaskell/wxHaskell

它工作,示例程序编译和运行成功.

现在唯一的问题是我想在mac OS X上分发一个wxHaskell应用程序.我尝试使用macosx-app和cabal-macosx(https://github.com/michaelt/cabal-macosx)制作一个"app"文件.它在我的机器上运行正常,但无法在另一台计算机上运行.我收到以下错误:

Dyld Error Message: Library not loaded: /Users/user/.cabal/lib/wxc-0.90.1.0/ghc-7.6.3/libwxc.dylib.
Run Code Online (Sandbox Code Playgroud)

我使用的是OS X 10.8.4(Mountain Lion),但我也有兴趣在Windows上编译应用程序并重新分发它们.

什么是重新分发wxHaskell应用程序的最佳方法?

Setup.hs

-- Example Setup.hs for the wxHello app.

import Distribution.MacOSX
import Distribution.Simple

main :: IO ()
main = defaultMainWithHooks $ simpleUserHooks {
         postBuild = appBundleBuildHook guiApps -- no-op if not MacOS X
       }

guiApps :: [MacApp]
guiApps = [MacApp "WxHello"
                  (Just "resources/WxHello.icns")
                  Nothing -- Build a default Info.plist for the icon.
                  [] -- No other resources.
                  [] …
Run Code Online (Sandbox Code Playgroud)

haskell wxhaskell

5
推荐指数
1
解决办法
420
查看次数

如何使用MinGW/MSYS在Windows上安装wxHaskell

我试图将wxHaskell安装到运行Windows XP64的机器上,使用gcc从源代码构建MinGW/MSYS和wxWidget 3.0.我做了:

cabal install wx
Run Code Online (Sandbox Code Playgroud)

并得到一个错误:

...
Configuring wxc-0.90.0.4...
setup.exe: wx-config: does not exist
Failed to install wxc-0.90.0.4
cabal.exe: Error: some packages failed to install:
wx-0.90.0.1 depends on wxc-0.90.0.4 which failed to install.
wxc-0.90.0.4 failed during the configure step. The exception was:
ExitFailure 1
wxcore-0.90.0.3 depends on wxc-0.90.0.4 which failed to install.
Run Code Online (Sandbox Code Playgroud)

我已成功使用wxWidgets在C++(gcc)中编写示例应用程序.所以我确实有一个工作的wxWidget安装.我有wx-config:

$ which wx-config
/usr/local/bin/wx-config
Run Code Online (Sandbox Code Playgroud)

问题是这wx-config是一个unix shell脚本,并且cabal(从MSYS调用)以某种方式拒绝识别它,即使它在系统路径上.如果我wx-config在MSYS中运行,我得到类似的东西:

$ wx-config --cxxflags
-I/usr/local/lib/wx/include/msw-unicode-3.0 -I/usr/local/include/wx-3.0 -D_LARGE
FILE_SOURCE=unknown -DWXUSINGDLL -D__WXMSW__ -mthreads
Run Code Online (Sandbox Code Playgroud)

我问了一个问题/sf/ask/1539913441/,看看是否可以将脚本转换为exe,但是没有人回应任何解决方案.

这里还有一个相关的问题, …

wxwidgets haskell wxhaskell

5
推荐指数
1
解决办法
758
查看次数

wxHaskell死了吗?

它好像死了.是吗?

如果是的话,我应该使用什么呢?

haskell wxhaskell

4
推荐指数
1
解决办法
742
查看次数

为什么Stack无法识别刚刚安装的依赖项?

所以我正在尝试使用reactive-banana + wxHaskell进行GUI编程.作为Haskell及其开发工具的新手,我对堆栈感到非常困惑.

所以我试着stack install wx,它提示我安装wxcore,这提示我安装wxcwxdirect.在我之后stack install wxdirect,我尝试跑步stack install wxc,但是看见:

While constructing the BuildPlan the following exceptions were encountered:

--  Failure when adding dependencies:    
  wxdirect: needed (>=0.90.1.1), not present in build plan (latest is 0.92.1.0)
needed for package: wxc-0.92.1.1

--  While attempting to add dependency,
Could not find package wxdirect in known packages

Recommended action: try adding the following to your extra-deps in {project root}/stack.yaml
- wxdirect-0.92.1.0
Run Code Online (Sandbox Code Playgroud)

总之,我试图用 …

haskell wxhaskell cabal cabal-install haskell-stack

4
推荐指数
1
解决办法
1183
查看次数

跟踪Haskell中的程序变量,如命令式程序

每次用户与我的程序交互时,我都很难找到改变的方法.这很难解释,这是一个例子(Haskell + wxhaskell):

simulate :: Int -> Frame () -> IO ()
simulate qNr window = do
 fdata <- readFile "qarchive"
 case (split (listTake (split fdata '\n') qNr 0) '#') of
  (qst:a:b:c:coralt:answer:x) -> do
   -- GUI Controls Initialization (buttons,text,etc...) 
   nextButton <- button window [text := "Next Question ->", on command := set infoField [text := "Next Question"], position := pt 185 155]
   return ()

main :: IO ()
main = start gui

gui :: IO ()
gui = do
 window …
Run Code Online (Sandbox Code Playgroud)

haskell wxhaskell

3
推荐指数
1
解决办法
638
查看次数