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

时间:2016-08-29 13:37:39

标签: 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))

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

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

0
1
2
3
4

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

1 个答案:

答案 0 :(得分:3)

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

我大约85%确定交互窗口不会这样做:即允许您覆盖已显示的文本。如果你想做这样的事情,你可能想要使用图形工具箱创建自己的文本窗口。这样,您可以以任何您想要的方式更改窗口中的文本。