如何清除或覆盖DrRacket中的一行文本?

ohs*_*ite 5 racket

我想显示文本然后覆盖它(对于简单的进度条等).显示回车符("\r")的常用技巧在Linux和Windows的终端中运行Racket时工作正常,但在DrRacket和GRacket中,回车似乎没有将光标移动到行的开头.

以此代码为例:

(for ([x 5])
  (display "\r")
  (display x)    
  (flush-output) ; The result is the same with or without this line
  (sleep 0.1))
Run Code Online (Sandbox Code Playgroud)

在终端中运行会产生一个覆盖自己的计数器; 最后只4显示在终端中.

在DrRacket中运行会导致数字显示而不会被覆盖:

0
1
2
3
4
Run Code Online (Sandbox Code Playgroud)

有没有办法在DrRacket的交互窗口中覆盖一行文本?

Joh*_*nts 4

要获得对此的权威答案,您需要在球拍用户邮件列表中听到 Robby Findler 的声音(请参阅https://lists.racket-lang.org/)。

我大约 85% 确信交互窗口不会执行此操作:也就是说,允许您覆盖已显示的文本。如果您想做这样的事情,您可能想使用图形工具箱创建自己的文本窗口。这样,您就可以按照您想要的任何方式更改窗口中的文本。