Имейте центральный метод, который все ползунки вызывают для события valueChanged
.
В этом методе суммируйте значения всех ползунков. При изменении суммы отрегулируйте макс. Всех ползунков, чтобы увеличение одного ползунка не могло превысить ваше суммарное значение. (Новый максимум каждого слайдера будет представлять собой разницу между его текущим значением и max_sum_total - current_sum_total.
Таким образом, если вы установите все ползунки на 5, ваш метод установит максимальное значение для всех ползунков на 5.
Если ползунок A был в 10, ползунок B был в 5, а остальные были в 0,
Slider A max would be MIN((20 - (A+B+C+D) - A), 10) //5
Slider B max would be MIN((20 - (A+B+C+D) - B), 10) //10
... и т. Д.