2016-01-28 5 views
0

Я использую ползунок для просмотра коллекции, размер которой меняется динамически и может быть очень хорошо 1.Matlab слайдера при Min = Max = Value = 1

Но если я:

set(mySld, 'min', 1, 'max', 1, 'value', 1, 'sliderstep', [1 1]) 

Ползун будет выглядеть следующим образом, с так называемым большим пальцем пополам до тех пор, как «корыто»:

wrong slider

Что не в порядке, потому что если вы щелкните на левой стороне слайдера, значение будет установлено на ноль, то есть вне диапазона, и ползунок просто исчезнет.

Я использую неправильные настройки свойств?

(конечно, я мог бы set(mySld, 'enable', 'off') всякий раз, когда Min = Max = 1, но это похоже на хак).

+0

Какую версию Matlab вы используете? С ML2013a я не могу воспроизвести это поведение: 'Предупреждение: для управления ползунком требуется, чтобы Min был меньше Max . Управление не будет отображаться до тех пор, пока все его значения параметров не будут действительны. ' – Daniel

ответ

0

Вы можете использовать приемник для проверки значения против мин и/или макс:

figure; 
% create the uicontrol 
sl = uicontrol ('style', 'slider', 'min', 1, 'max', 1, 'value', 1, 'sliderstep', [1 1]); 
% create a listener to check the value are reset appropriately 
addlistener (sl, 'Value', 'PostSet', @(obj,event)set (sl, 'Value', max(sl.Min, min(sl.Value,sl.Max)))); 
Смежные вопросы