gpt4 book ai didi

wolfram-mathematica - 在 Mathematica 中调整 TogglerBar 按钮大小

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

是否可以调整 TogglerBar 的大小/字体,以便在名称大小不同的情况下它们都一样大。

下面的例子是贝利撒留提出的解决方案:"Can TogglerBar be used as multiple CheckBox in Mathematica ?"

我希望每个按钮的大小相同。

Manipulate[Graphics[
{
{White, Circle[{5, 5}, r]},(*For Mma 7 compatibility*)
If[MemberQ[whatToDisplay, "I am a Circle"],
{Red, Circle[{5, 5}, r]}],
If[MemberQ[whatToDisplay, "and I am a very nice Square"], {Blue,
Rectangle[{5, 5}, {r, r}]}],
If[MemberQ[whatToDisplay, "Other"], {Black,
Line[Tuples[{3, 4}, 2]]}]
},
PlotRange -> {{0, 20}, {0, 10}}
],
{{r, 1, Style["Radius", Black, Bold, 12]}, 1, 5, 1,
ControlType -> Slider,
ControlPlacement -> Top},
Control@{{whatToDisplay, True,
Style["What", Black, Bold, 12]}, {"I am a Circle",
"and I am a very nice Square", "Other"},
ControlType -> TogglerBar,
Appearance -> "Horizontal",
ControlPlacement -> Top}]

enter image description here

编辑 :它在代码中真的很丑(如果我们仍然可以称之为代码)但在显示上看起来不错。

enter image description here

enter image description here

最佳答案

Mathematica 8 介绍 Overlay这允许多个表达式轻松地相互叠加。加上Invisible (从 v6 开始),我们拥有所有必要的成分,可以轻松同步所有按钮大小,而无需对空间或像素进行计数。以下代码说明了它们的使用,并强调了相关部分:

DynamicModule[{options, allLabels, size, pad}
, options =
{ "I am a Circle" -> {Red, Circle[{5, 5}, size]}
, "and I am a very nice Square" -> {Blue, Rectangle[{5, 5}, {size, size}]}
, "Other" -> {Black, Line[Tuples[{3, 4}, 2]]}
}
; allLabels = options[[All, 1]]
; pad[label_] :=
Overlay[Append[Invisible /@ allLabels, label], Alignment -> Center]

; Manipulate[
Graphics[what /. options /. size -> r, PlotRange -> {{0, 20}, {0, 10}}]
, {{r, 1, "Radius"}, 1, 5, 1}
, {{what, {}, "What"}, # -> pad[#] & /@ allLabels, TogglerBar}
]
]

Manipulate result

定义:
pad[label_] :=
Overlay[Append[Invisible /@ allLabels, label], Alignment -> Center]

定义了一个函数,该函数将所有标签彼此不可见地堆叠在一起,然后将所需的标签可见地放在其上面。结果是所需的标签在两侧都有足够的空白以容纳任何其他标签。
Manipulate语句使用 padTogglerBar 创建标签:
{{what, {}, "What"}, # -> pad[#] & /@ allLabels, TogglerBar}

请注意,标签以 value -> label 的形式指定。允许值在没有 Overlay 的情况下保留其原始形式和 Invisible pad 添加的说明符.

关于wolfram-mathematica - 在 Mathematica 中调整 TogglerBar 按钮大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6308335/

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