问题标签 [mcclim]
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.
common-lisp - 更新窗口以响应 CLIM 框架命令
在试图弄清楚 CLIM 时,我遇到了这个示例程序。这是一个简单的迷宫游戏。作者声称已在 LispWorks 中对其进行了测试(甚至#+Genera
在其中进行了测试,暗示该程序可以在真正的 Lisp 机器上运行),但我正试图让它在带有 McCLIM 的 SBCL 中运行。
在 SBCL/McCLIM 下,窗口绘制,但是当您按下移动键时没有任何可见的反应。非移动键会导致文本与游戏说明一起输入到窗格中。
我发现游戏命令键正在改变游戏的内部状态,所以唯一的问题是屏幕没有更新。
然后我意识到您无法编写代码来从实现命令的代码范围内重新绘制迷宫。所有绘制的方法都接收stream
来自 CLIM 的参数,该参数必须传递给图形基元。例如:
但处理击键的代码不接受任何stream
参数:
我最终要做的是将stream
第一次(也是唯一一次)调用中的参数保存draw-maze-array
到全局变量,以便我可以将更新代码添加到define-stone-command
宏中,如下所示:
这种轻微的改变在带有 McCLIM 的 SBCL 上提供了所需的行为,但这似乎并不正确。毕竟,作者声称该代码在 LispWorks 上运行良好。我有几个问题:
- 有 LispWorks 的人可以确认这个程序在 LispWorks 上按原样工作吗?
- 我对代码的更改是否使其在 LispWorks 上失败?
- 在 CLIM 应用程序中处理屏幕更新的公认方法是什么?
lisp - McCLIM, How to catch a keystroke?
I'm currently learning McCLIM. Trying to figure out how to define a command, that will react to keystroke. For a app named superapp
I have a function
which show some text on it's screen pane. It works fine for pane-buttons in activate-callback
. However, this
doesn't work. I know that I defined it right, since it works well with (frame-exit *application-frame*)
. So I just don't understand something else.
EDIT: SO, this is the working variant
lisp - McCLIM 文本标签访问
有没有办法更改简单标签中的文本(screen :label :text "input")
?尝试了不同的东西,但没有一个奏效。设置小工具值,访问文本插槽..
同样由于某种原因,在没有创建标签:text
并运行该应用程序的情况下会重新启动我的用户会话。
lisp - 是否存在 McCLIM Click Listener?
我一直在尝试学习 McCLIM,鉴于文档的简洁性,这非常困难。阅读手册后,我无法弄清楚如何将单击关联到窗格并运行命令。我知道我可以定义以下命令:
并Say
在命令框中键入以使其执行某些操作。我想单击一个窗格并让它在单击时输出这个 hello world 字符串。
为了在给定窗格上启用点击侦听器,我需要设置什么?