【发布时间】:2017-09-17 08:03:26
【问题描述】:
我正在使用以下代码尝试从函数中获取 GUI 元素:
mypanelfn: func[] [
collect[
repeat i 10 [
print append copy "i in loop: " i
keep [t: text] keep append copy "message: " i
keep [field "entry"
button "Click" [t/text: "clicked"] return]]]]
view [
do [mypanelfn]]
没有错误信息,循环继续,还显示一个窗口。但这只是一个没有任何文本、字段或按钮的小空窗口。
这段代码有什么问题?
编辑:将probe 放在collect 显示之前(为了清楚起见,我添加了换行符):
[t: text "message: 1" field "entry" button "Click" [t/text: "clicked"] return
t: text "message: 2" field "entry" button "Click" [t/text: "clicked"] return
t: text "message: 3" field "entry" button "Click" [t/text: "clicked"] return
t: text "message: 4" field "entry" button "Click" [t/text: "clicked"] return
t: text "message: 5" field "entry" button "Click" [t/text: "clicked"] return
【问题讨论】:
-
实际上,
view mypanelfn完美运行。正在显示所有 GUI 元素。但是单击任何按钮只会更改最后一个文本标签,而不是相应的文本标签。如何纠正? -
使用
self/text -
哪个
text条目?我无法在任何地方成功添加self。 -
顺便说一句,stackoverflow.com/a/46253902/5798459 解决了这个问题
-
github.com/red/red/blob/master/tests/view-test.red 有更好的动态构造视图对象的例子
标签: function user-interface rebol red