如何通过 ssh 将 tkcon 连接到 tcl/tk GUI

How to connect tkcon to a tcl/tk GUI over ssh

我在虚拟机中有一个全屏 Tk GUI 应用程序 运行。

我知道我可以 "Attach to ... Interpreter" 从 Tkcon 到虚拟机内的 GUI。

不幸的是,由于应用程序总是 运行 全屏,所以 tkcon 对话框隐藏在它后面。

我明白了,我可以使用 ALT - TAB 在 tkcon 和全屏 GUI 之间切换。只要您可以定期来回切换,它就可以工作。

问题:

只是我想知道是否可以在第二个监视器中 运行 tkcon(例如,在 windows 或 linux 主机上)并通过 ssh 连接到 GUI 运行宁在虚拟机中。我可以看到 tkcon 有一个 "Attach to ... socket" 选项。

我尝试过的:

我以为我可以,

  1. 运行腻子。
  2. 通过启用 X 转发的 ssh 连接到虚拟机。
  3. 从 Putty 终端在 VM 中启动 tkcon。
  4. 并连接到虚拟机中的 GUI 运行ning。 - 除了这最后一步不起作用。我在 Attach to ... Interpreters.
  5. 下的 tkcon 中看不到 'discovered' 解释器列表

这也让我想知道,tkcon 'discovers' 虚拟机中的解释器是如何工作的。

感谢您的宝贵时间和帮助。

Tkcon 有两个附加到另一个解释器的实际选项:

  1. Tk 的内置 send command,它通过 Xserver 属性工作,并且在启用方面有点挑剔。这可以直接与同一 Xserver 上的任何其他 Tk 通信。使用 SSH 来保护事物将完全是关于做通常的远程 X11 访问隧道。

  2. 您运行在您希望控制的解释器中tkconclient包(查看源代码的维基页面).然后你用 tkcon 附加到它(尽管你需要知道要连接到哪个端口)。您需要为此设置一个普通的 SSH 隧道;默认情况下它只允许本地连接(这是一件好事)。

请注意,客户端代码必须运行设置一个事件循环。对于任何 GUI 应用程序、任何响应其他服务器套接字的应用程序,或者实际上通常是进行大量线程管理的任何应用程序,这都不是问题。其中涵盖了最有趣的应用程序。