user-interface - 以 Red 语言打印所有 GUI 元素的文本

标签 user-interface rebol red

我正在尝试使用以下代码打印所有 GUI 元素的文本:

  sentlist: ["A" "B" "C"]

  main: function [slist] [
      view collect [
          repeat i length? slist [
              keep compose [
                  text (slist/:i)
                  field "" 
                  return ]]
          keep [button "Printall" [
              repeat i (2 * length? slist)[
                  print face/parent/pane/(i)/text  ]]]]]

 (main sentlist) 

它运行正常,没有任何错误,并且 text 元素的文本被正确打印出来,但是对于 fields,每个字段只打印最后一个字段的条目。问题出在哪里以及如何纠正?感谢您的帮助。

最佳答案

在您的规范中,字段“”对每个字段重复使用相同的字符串。更改一个字段会更改每个字段的文本(可能出于效率原因,这不会反射(reflect)在 GUI 中)。您可以将该行更改为field (copy "") 以提供唯一的字符串。

关于user-interface - 以 Red 语言打印所有 GUI 元素的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46285290/

相关文章:

python - 多处理和 GUI 更新 - Qprocess 还是多处理?

filenames - 在 Rebol 3 GUI 中请求文件的正确方法(Saphir 版本)

Rebol: block 字的动态绑定(bind)

icons - 如何为红色程序中的 View 设置图标?

go - 哪种新语言最适合编写操作系统

java - 如何将对象中的数据插入到 Eclipse 生成的 JTable 中? (请不要数据库)

java - Graphics2D JPanel 显示但按钮不显示?

Java gui 未立即更新

parsing - Rebol 解析中匹配失败的错误消息