Re: Custom label for a slider in Manipulate
- To: mathgroup at smc.vnet.net
- Subject: [mg96358] Re: [mg96328] Custom label for a slider in Manipulate
- From: "David Park" <djmpark at comcast.net>
- Date: Thu, 12 Feb 2009 06:36:40 -0500 (EST)
- References: <24638898.1234348258845.JavaMail.root@m02>
Damon, Throw Manipulate into the ashcan and make your own dynamic display. DynamicModule[ {RTT = .1}, Panel[ Column[ {Row[ {"Round Trip Time: ", Slider[Dynamic[RTT], {0.03, 0.25}, Appearance -> Small], Spacer[10], Dynamic@ Style[PaddedForm[Round[1000 RTT], 3], FontFamily -> "Courier"], Spacer[2], "ms" }](* Row *), Dynamic@ Plot[Sqrt[2]/(RTT*Sqrt[p]), {p, .001, .1}, PlotRange -> {{0, .1}, {0, 150}}, ImageSize -> 400]}](* Column *), Style["Custom Dynamic Display", 16], BaseStyle -> {FontSize -> 14} ](* Panel *) ] You could also have used a Manipulator rather than a Slider. I didn't want the value on the right to 'jitter' as the slider is moved so I used a PaddedForm and the Courier font to keep the number fixed width. With the Presentations package we could stay with the default "Segoe UI" font used in Panels and keep the width fixed by using ProportionalNumberForm. Needs["Presentations`Master`"] DynamicModule[ {RTT = .1}, Panel[ Column[ {Row[ {"Round Trip Time: ", Slider[Dynamic[RTT], {0.03, 0.25}, Appearance -> Small], Spacer[10], Dynamic@ProportionalNumberForm[Round[1000 RTT], 4], Spacer[2], "ms" }](* Row *), Dynamic@ Plot[Sqrt[2]/(RTT*Sqrt[p]), {p, .001, .1}, PlotRange -> {{0, .1}, {0, 150}}, ImageSize -> 400]}](* Column *), Style["Custom Dynamic Display", 16], BaseStyle -> {FontSize -> 14} ](* Panel *) ] David Park djmpark at comcast.net http://home.comcast.net/~djmpark/ From: Damon [mailto:damonwischik at gmail.com] 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? Thanks, Damon.