带有 LTK 的远程 GUI 无法打开窗口

问题描述

我想要做什么:我有一个使用 LTK 作为其用户界面的预先存在的游戏。游戏包含许多按钮、画布和窗口。我想通过 ltk-remote 从远程计算机访问 GUI,如链接手册第 7 节所述。

我做了什么:我快速加载了 ltk-remote,运行 (with-remote-ltk 9898 form),表单是一个启动游戏的函数,然后在终端中运行 wish remote.tcl localhost 9898。 (端口号 9898 是任意的。)这导致了用户@Sim 在 this question 中详述的问题,我使用他们的回答解决了这个问题。这可能引起了问题(正如 Sim 所建议的那样)。

问题:GUI 开始运行,但仅对某些事件做出部分反应。最简单的孤立效果是,当一个事件提示一个新窗口打开时,它并没有打开。如果要打开更多窗口,则除第一个窗口外的所有窗口都将打开。这是一个最小的例子:

(ltk:with-remote-ltk 9898 nil
    (let ((b (make-instance 'ltk:button)))
      (setf (ltk:command b) #'(lambda ()
                                (make-instance 'ltk:toplevel :title "title 1")
                                (make-instance 'ltk:toplevel :title "title 2")
                                (make-instance 'ltk:toplevel :title "title 3")))
      (ltk:grid b 0 0)))

点击按钮只会打开“title 2”和“title 3”。

我还没有看到任何人成功使用 ltk-remote 的证据,因此库本身可能会被窃听。有人可以分享他们的经验吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)