Re: Custom label for a slider in Manipulate
- To: mathgroup at smc.vnet.net
- Subject: [mg96350] Re: Custom label for a slider in Manipulate
- From: Albert Retey <awnl at gmx-topmail.de>
- Date: Thu, 12 Feb 2009 06:35:13 -0500 (EST)
- References: <gmu90d$grj$1@smc.vnet.net>
Hi, > I have a simple Manipulate, > > Manipulate[ > Plot[Sqrt[2]/(RTT*Sqrt[p]), {p, .001, .1}, > PlotRange -> {{0, .1}, {0, 150}}], > {{RTT, .1, "round trip time"}, .03, .25, Appearance -> "Labeled"} > ] > > But I want the slider that controls the RTT variable to have a > prettier appearance. I would like it to display the value to the right > of the control, but instead of a plain number I want it to show > ToString[Round[1000 RTT]] <> "ms" > > How can I achieve this? I'm sure you can talk Manipulate into doing what you want, but it is one of the cases where I think creating the interface from scratch using Dynamic and DynamicModule is more straight forward: Deploy[Panel[DynamicModule[{RTT = 0.1}, Column[{ Grid[{{ "round trip time", Manipulator[Dynamic[RTT], {0.03, 0.25}], InputField[ Dynamic[Round[1000 RTT]], Appearance -> None, ImageSize -> 20, Enabled -> False ], "ms" }}], Panel[ Dynamic[ Plot[Sqrt[2]/(RTT*Sqrt[p]), {p, .001, .1}, PlotRange -> {{0, .1}, {0, 150}}] ], Background -> White] }] ]]] if you want the value to work as a Controle, that is only slightly more complicated: Deploy[Panel[DynamicModule[{RTT = 0.1}, Column[{ Grid[{{ "round trip time", Manipulator[Dynamic[RTT], {0.03, 0.25}], InputField[ Dynamic[Round[1000 RTT], (RTT = #/1000) &], Appearance -> None, ImageSize -> 20 ], "ms" }}], Panel[ Dynamic[ Plot[Sqrt[2]/(RTT*Sqrt[p]), {p, .001, .1}, PlotRange -> {{0, .1}, {0, 150}}] ], Background -> White] }] ]]] hth, albert