R tcltk:如何在数组中添加按钮

时间:2014-07-31 15:03:50

标签: r tcl tk

此代码将生成50个按钮。我想将它们放在一个数组中,以便稍后可以引用它们并根据某些条件更改它们的属性。我的代码如下:

numIDs = 50;
bs = array (0, c(numIDs));
for (num in 1:numIDs)
{
    b <- tkbutton (f.frame);
    print (paste (length(b[num]), length(b)));
    bs[num] <- b;
    tkpack (bs[num]);
}

上面的代码产生错误:

In bs[num] <- b :
  number of items to replace is not a multiple of replacement length
Execution halted

循环中的print生成[1] "1 2"因此长度不同,这就是分配失败的原因,但我该如何解决呢。

1 个答案:

答案 0 :(得分:1)

您可能想要list,而不是array

f.frame <- tktoplevel() # just for reproducibility

numIDs = 50;
bs = list();
for (num in 1:numIDs) {
    b <- tkbutton (f.frame);
    print (paste (length(b[num]), length(b)));
    bs[[num]] <- b; # note `[[` extraction for lists
    tkpack (bs[[num]]); # note `[[` extraction for lists
}