views:

259

answers:

3

I need the user to set a number of percentage values which should always add up to 100%. What are standard ways to archieve this? I came up with the following:

1) have a standard slider control for each value you need to set. Moving one slider will automatically adjust all the others so the sum will always come out as 100%. You can fix inidividual sliders with a checkbox displayed next to it. Only the remaining, "free", sliders will be adjustable.

Pro: consists entirely of standard widgets users already know

Con: lots of widgets, lots of screen real estate used, looks ugly when you have lots of sliders and thus low percentage values, normalization to 100% isn't immediately obvious.

2) have a slider control with several sliding knobs.

Pro: normalization is implicit and obvious because the length of the slider is fixed, relative weight is easy to see at a glance

Con: non-standard, knobs can easily overlap each other, knobs aren't easy to fix, no obvious place to put a text/number representation for each interval/percentage

3) display a standard pie chart.

Pro: normalization is implicit and obvious, relative weight is easy to see

Con: non-standard for interactive use, hard to make intuitive slice resizing work, no place to put a text/number representation for each slice

4) ... ?

I'm not happy with either of these hence my question here. Any better ideas? I'm dealing with 3-10 individual percentage values on a rich windows client (i.e. not web).

cheers,

Sören
A: 

What about vertical sliders? Like a sound mixer. I think it looks a lot better than a list of 10 horizontal sliders.

Or fixed width bar with several sliders on them, a bit like the gradient control of Photoshop if you know it.

Gerrie Schenck
A: 

How about a time line view; (gantt chart) kind of like in Microsoft Expression Blend or in flash where you have multiple layers for each action and each action can be within a range on the scale from 0 to 100.

Michael G
A: 

Similar to the timeline idea, how about a slider like the partitioning interface in GParted or similar disk partitioning tools?

You could display the percentage values and actual numbers above the dynamically resizing bars to allow the user to edit them numerically instead of using the sliders if they want to configure it manually.