Dynamic Mathematica ItemSize禁用SetterBar
我正在使用Mathematica,并且对Dynamic Mathematica ItemSize禁用SetterBar,dynamic,formatting,wolfram-mathematica,spacing,Dynamic,Formatting,Wolfram Mathematica,Spacing,我正在使用Mathematica,并且对Multicolumn的ItemSize功能有问题。在下面的代码中,我根据第一个面板中的SetterBar值在第二个面板中生成一定数量的SetterBars。这些以编程方式生成的SetterBars使用值0、1和2更新列表。对于面板1的值2和4,有足够的空间。但是,面板1的值8和16将SetterBars从屏幕上推出。我尝试在Spacings->0之后使用ItemSize->{5,1}将SetterBar压缩在一起。手动设置ItemSize功能时,只有第一
Multicolumn
的ItemSize
功能有问题。在下面的代码中,我根据第一个面板中的SetterBar
值在第二个面板中生成一定数量的SetterBar
s。这些以编程方式生成的SetterBar
s使用值0、1和2更新列表。对于面板1的值2和4,有足够的空间。但是,面板1的值8和16将SetterBar
s从屏幕上推出。我尝试在Spacings->0
之后使用ItemSize->{5,1}
将SetterBar
压缩在一起。手动设置ItemSize
功能时,只有第一个SetterBar
允许我单击并更改其值。所有其他SetterBar
s似乎都已“禁用”
有谁能告诉我如何“压缩”一长串的16个SetterBar
s,使它们都适合一行,而不需要水平滚动
DynamicModule[{ number = 2, list = {0, 0} }, Panel[Column[{
Panel[
SetterBar[
Dynamic[number, {(number = #), (list =
PadRight[{}, number])} &], {2, 4, 8, 16} ]],
Dynamic[
Panel[Multicolumn[
Table[With[{i = i},
Multicolumn[{SetterBar[Dynamic[list[[i]]], {0, 1, 2}],
Style[i, 12]}, {2, number}, Alignment -> Center,
ItemSize -> {4, 1}]], {i, number}], number, Spacings -> 0]]],
Dynamic[list]}]]]
您必须将内部
多列
s的列数固定为1,并且不应随数的增加而增加
DynamicModule[{number = 2, list = {0, 0}},
Panel[Column[{Panel[
SetterBar[
Dynamic[number, {(number = #), (list = PadRight[{}, number])} &], {2, 4, 8, 16}]],
Dynamic[Panel[
Multicolumn[
Table[With[{i = i},
Multicolumn[{SetterBar[Dynamic[list[[i]]], {0, 1, 2}],
Style[i, 12]}, {2, 1}, Alignment -> Center,
ItemSize -> {4, 1}]], {i, number}], number,
Spacings -> 0]]], Dynamic[list]}]]]
或
两者都产生
您还可以使用行
和列
而不是多列
DynamicModule[{number = 2, list = {0, 0}},
Panel[Column[{Panel[
SetterBar[
Dynamic[number, {(number = #), (list = PadRight[{}, number])} &], {2, 4, 8, 16}]],
Dynamic[Panel[
Row[Table[
With[{i = i},
Column[{SetterBar[Dynamic[list[[i]]], {0, 1, 2}],
Style[i, 12]}, {2, number}, Alignment -> Center,
ItemSize -> {4, 1}]], {i, number}]]]], Dynamic[list]}]]]
您必须将内部多列的列数固定为1,并且不应随数的增加而增加
DynamicModule[{number = 2, list = {0, 0}},
Panel[Column[{Panel[
SetterBar[
Dynamic[number, {(number = #), (list = PadRight[{}, number])} &], {2, 4, 8, 16}]],
Dynamic[Panel[
Multicolumn[
Table[With[{i = i},
Multicolumn[{SetterBar[Dynamic[list[[i]]], {0, 1, 2}],
Style[i, 12]}, {2, 1}, Alignment -> Center,
ItemSize -> {4, 1}]], {i, number}], number,
Spacings -> 0]]], Dynamic[list]}]]]
或
两者都产生
您还可以使用行
和列
而不是多列
DynamicModule[{number = 2, list = {0, 0}},
Panel[Column[{Panel[
SetterBar[
Dynamic[number, {(number = #), (list = PadRight[{}, number])} &], {2, 4, 8, 16}]],
Dynamic[Panel[
Row[Table[
With[{i = i},
Column[{SetterBar[Dynamic[list[[i]]], {0, 1, 2}],
Style[i, 12]}, {2, number}, Alignment -> Center,
ItemSize -> {4, 1}]], {i, number}]]]], Dynamic[list]}]]]
建议您在mathematica.stackexchange.com上提问。建议您在mathematica.stackexchange.comPerfect上提问!非常感谢你!完美的非常感谢你!