gpt4 book ai didi

user-interface - 使用 Racket 创建新的 snip%

转载 作者:行者123 更新时间:2023-12-04 04:28:44 24 4
gpt4 key购买 nike

我正在尝试在 DrRacket 的文本窗口中创建一个新的 GUI 元素,例如图片或语法对象。据我所知,最标准的做法是使用 snip% .1

不幸的是, creating new snips 的文档虽然全面,但有点难以理解,并且留下了一些有待回答的问题。

对于初学者来说, snip% snip-class% 有什么区别?为什么需要将它们分成两个类,而不是简单地组合成一个类?是因为多个剪辑将使用一个剪辑类吗?

其次,什么是 snip-reader<%> ?不仅为什么它需要是一个单独的类,而且为什么要安装提供它的模块?2 如果它确实需要是一个新类,为什么不能直接引用它。为什么要经历构造然后解析形式字符串的整个过程: "(lib ...)\n(lib ...)"

我的意思是,这种设计现在可能有任何原因,它可能只是旧 API 的残余。如果是这样,有没有人想过制作一个新的更一致的 API?或者如果这种设计有原因,你能告诉我它是什么,因为文档似乎没有说清楚。

我的意思是,截至目前,我可以在创建新片段时复制/粘贴 sample given in the docs。但是我很难理解这里的设计,所以我可以正确使用它们。

1我知道还有其他方法可以做到这一点,但我也希望有交互式按钮之类的。

2我知道它本身不需要作为库安装,但文档似乎强烈插入您朝这个方向发展。

最佳答案

好吧,我想我终于找到了答案。概括地说:
snip%类包括绘制snip、告诉编辑器为图片保留多少空间以及处理鼠标点击等事件的方法。

接下来,snip-class%类用于编码和解码片段。这必须是一个单独的类,因为当保存到文件时,编辑器需要编码它是什么类型的片段,并且由于显而易见的原因,它不能只放置文字 snip%在那里上课。它存储在文件中的值为snip-class% '类名'。这可以是任何东西,只要编辑器具有与 snip-class% 关联的类名, 可以加载。此外,如果它的形式为 "(lib ...)""(lib ...) (lib ...)" Racket 会自动为您将其加载到列表中。

没有什么“需要”安装本身,它只是最简单的方法。否则,您需要在实际加载文件之前手动告诉编辑器如何处理片段。

关于user-interface - 使用 Racket 创建新的 snip%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41105456/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com