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

标签 racket

我想显示文本然后覆盖它(对于简单的进度条等)。在 Linux 和 Windows 的终端中运行 Racket 时,显示回车 ( "\r" ) 的常用技巧工作正常,但在 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 的交互窗口中覆盖一行文本?

最佳答案

有关这方面的权威答案,您需要在 Racket 用户邮件列表中听取 Robby Findler 的意见(请参阅 https://lists.racket-lang.org/)。

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

关于racket - 如何清除或覆盖 DrRacket 中的一行文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39207690/

相关文章:

scheme - 从 when 语句中的函数返回

Racket : I'm trying to build a function returning all values associated with key

scheme - 为什么这个 if 语句是这样的?

racket - Racket 中的融合乘加

user-interface - 如何在 Racket 中没有框架的 [x] 按钮的情况下退出 GUI 应用程序

scheme - 通过高阶累积过程展平Scheme中的惰性列表的惰性列表

optimization - 如何优化这段Racket代码?

unit-testing - 如何对 Racket 中具有动态输出的函数使用单元测试框架?

c# - 在 Racket 上实现 RC4

scheme - Racket中如何判断两个struct实例是否属于同一结构类型?