问题标签 [threepenny-gui]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
69 浏览

haskell - Threepenny-GUI: Drag'n'Drop - 访问 DragData

我目前正在努力在调用DragData时访问被拖动元素的on UI.drop。我有这样的事情:

有人可以帮助我吗?提前致谢!

问候,莫里茨

0 投票
1 回答
205 浏览

haskell - Threepenny-GUI:以字符串形式获取属性值

有没有办法将元素的属性值(尤其是 id)作为字符串获取?例如以下行导致“()”:

由于attr返回 a WriteAttrget可能无法正常工作。有解决方法吗?

提前致谢!

问候

0 投票
1 回答
121 浏览

haskell - Threepenny-gui:通过“文件”输入获取文件路径

我将为我的控制台工具编写简单的前端。一般来说,它需要一些参数和输入文件路径,以便进一步打开和处理。我的想法是放置类似的东西

然后通过'value'获取选择的文件路径。但似乎由于安全原因,浏览器不提供所选文件的完整路径。
是否可以使用threepenny-gui 放置任何文件选择器?

0 投票
0 回答
93 浏览

haskell - Haskell - 无法在三便士中生成和使用图像文件

我会尽量具体。我正在尝试使用 Haskell、Threepenny 和 DOT 制作图形可视化 GUI

我已经创建了修改图形的按钮,并且我试图将修改后的图形保存在图像中,并在每次修改图形时加载该图像

但是,我可以运行 Threepenny gui,但我不能编写图像并更新它抛出的函数。

RunGraphviz 函数返回 IO () 并且 Threepenny GUI 使用 UI ()。我正在尝试使用“liftIO”,但它正在生成一些错误“Prelude head.empty list”。这是片段

0 投票
1 回答
198 浏览

haskell - 在三便士 gui 画布上绘制图像

我的画布有问题。我修改了 Canvas.hs 示例程序以在画布上绘制图像

在画布设置代码之后;这里供参考:

drawImg 在哪里

这应该与在原始版本的代码中绘制图像的点击功能相同。

这段代码的实际行为是一个空白画布,就像在原始示例中单击绘制图像按钮之前一样。我认为它应该在加载时绘制图像。为什么是这样?我应该将此调用添加到设置画布的行吗?

0 投票
2 回答
271 浏览

haskell - 如何更改 Threepenny GUI 中的按钮布局和位置?

如何在使用 threepenny-gui 包创建的 GUI 中更改按钮或其他 UI 元素的大小和位置?

文档Graphics.UI.Threepenny.Attributes列出了一些可能有用的函数,例如coords :: WriteAttr Element String. 但是,我不明白如何使用它们。具体来说,我不明白这个String论点应该是什么。

谢谢

0 投票
1 回答
153 浏览

haskell - Threenpenny gui - 单击时捕获鼠标坐标并使用它们构建一些状态

我想达到的目标:

每次用户单击画布时,从该单击中获取鼠标坐标以构造 aPoint x y并将此状态存储在 a[Point]中,以便稍后当用户单击按钮时,我可以将其[Point]用作某些功能的输入。

我做了什么:

我已经定义了一个Point数据类型,它有一个像这样的单值构造函数:

我已经设置了一个三便士UI(monad?)来定义用户界面,一个简单的400 x 400 canvas和一个button

然后定义了在 main 中运行 UI 的函数:

所以,最初我在用户点击的地方绘制点。Point x y通过在 lambda 参数中构造 a ,我相当容易地实现了这一点mousedown构造 a并将其绘制到那里的画布上我已经解决了该代码,因此我忽略了该代码,并且我不相信我当前的问题与此有关(即在该 lambda 范围内构造和绘制一个点)。

我不想绘制然后丢弃Point对该 lambda 范围的绑定,我只想将该点存储在一个列表中。然后,我希望能够在用户单击按钮时阅读该列表。

我已经对 FRP 样式BehaviourEventhttp://hackage.haskell.org/package/threepenny-gui-0.4.2.0/docs/Reactive-Threepenny.html )进行了一些研究,我认为这是某种东西这有助于创建类似 redux 模式的东西,但我的大脑开始融化。

基于另一个 StackOverflow 帖子(混合 Threepenny-Gui 和 StateT),我认为我应该连接到 Threepenny UI 事件以创建一个事件流,然后用于accumB将该流中的每个事件累积到一些状态行为的流中,然后将该状态行为转换回事件流,并在最终流上应用并观察以更新 UI(很简单,我认为...... xD)

至少这是我收集到的,我在链接的 StackOverflow 问题的答案中测试了代码,它确实解决了该特定问题中提出的问题。但是,我需要捕获x y鼠标在mousedown事件流上的位置(该片段中没有涵盖)并使用它来构造一个Point流,这就是我被卡住的地方。我尝试根据我的目的修改接受的答案代码来实现它,但遇到了大量类型错误,因为我显然误解了这些部分是如何组合在一起的。

这是我在链接的 StackOverflow 问题上修改已接受答案中的代码的尝试:

有人能解释一下吗?我在墙上:-(

0 投票
1 回答
73 浏览

haskell - 三便士 GUI - 使用带有画布的接收器

我正在学习如何使用 Threepenny GUI,我已经从画布连接到点击事件流,将该事件流映射到 Point 流并应用accumB[]该流Event Point以获得Behaviour [Point]

其中Point

以及将点击Event流映射到的代码Behaviour [Point]

然后,我想将这些点绘制到我已在setup方法中添加到 HTML 正文中的画布元素上。

我已经设法从这样的行为中得出要点:

但问题是我希望每次用户单击画布时都将点绘制到画布上,而不需要用户去单击按钮。或者,换句话说,我想将绘制点函数组合到点流中。

根据我的研究,它看起来sink可能是我需要使用的函数,以将 FRP 样式中的 UI 的行为和突变联系在一起。

但是,我很难理解如何将它们拼凑在一起(即sink对于这个给定的用例,应用程序会是什么样子?)。目前是否有可能用 Threepenny 做到这一点?

0 投票
0 回答
42 浏览

haskell - threepenny-gui: 关闭窗口

是否可以关闭窗口threepenny-gui?我没有在包中找到任何类似的 Haskell-land 函数。我也尝试runFunction了两种类型的 s CoreForeign.JavaScript但都失败了,因为这两种Window类型都不是可编组的(没有ToJS实例),我需要 window 实例来调用close()它。

0 投票
1 回答
247 浏览

haskell - “无法加载包‘regex-posix’……未知符号‘regerror’”

对于一个新项目,我一直在尝试构建threepenny-gui包,我过去做过很多次,没有任何麻烦。然而,这一次,我遇到了一个不寻常的错误消息:

现在,一个快速的谷歌显示这个错误消息之前已经看到过 - 在 2010 年,之后它通过 GHC 更新修复。我尝试更改 GHC 版本(上面的输出是使用 GHC 8.8.4),但它也不适用于 8.8.3 或 8.8.2。我还尝试删除regex-posix¹ 并重新安装它,但这也不起作用。在这一点上,我必须承认这个错误已经完全难倒了我;有没有其他人知道可能是什么原因造成的,如果有,我该如何解决?

¹ 具体来说,我删除了C:\sr\snapshots\14724cfd\lib\x86_64-windows-ghc-8.8.4\regex-posix-0.96.0.0-11M5Q2Uki3ACYikP2WXOuqand C:\sr\snapshots\14724cfd\pkgdb\regex-posix-0.96.0.0-11M5Q2Uki3ACYikP2WXOuq.conf,并且做了ghc-pkg unregister regex-posix.