2016-08-19 3 views
0

Ich versuche, Min- und Max-Werte meines Sliders einzustellen, wenn er erstellt wird.Slider-Schritte und Standard-Min- und Max-Werte einstellen

function slider2_CreateFcn(hObject, eventdata, handles) 
% hObject handle to slider2 (see GCBO) 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles empty - handles not created until after all CreateFcns called 
% Hint: slider controls usually have a light gray background. 
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) 
    set(hObject,'BackgroundColor',[.9 .9 .9]); 
end 
set(hObject, 'Max', 10, 'Min', 1); 

aber wenn die GUI öffnet, wirft und Fehler und Schieber

Warning: slider control can not have a Value outside of Min/Max range 
Control will not be rendered until all of its parameter values are valid 
> In openfig at 135 
    In gui_mainfcn>local_openfig at 286 
    In gui_mainfcn at 234 
    In gui at 44 
Warning: slider control can not have a Value outside of Min/Max range 
Control will not be rendered until all of its parameter values are valid 
Warning: slider control can not have a Value outside of Min/Max range 
Control will not be rendered until all of its parameter values are valid 

verschwindet und ich versuche, die Schieber Schritte 1. selbst zu setzen, wenn sie oder die Erhöhung, wenn gezogen wird/Abnahme Schaltfläche wird verwendet.

function slider2_Callback(hObject, eventdata, handles) 
% hObject handle to slider2 (see GCBO) 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles structure with handles and user data (see GUIDATA) 

% Hints: get(hObject,'Value') returns position of slider 
%  get(hObject,'Min') and get(hObject,'Max') to determine range of slider 

    set(handles.slider2, 'SliderStep' , [1/9,1/9]); 
sliderValue = get(handles.slider2,'Value'); 
set(handles.edit2,'String',sliderValue) 

I chosed 1/9 haben, weil ich für Einheit Schritte maxvalue-minvalue

Alle Leitungen auf, wo ich falsch hilfreich sein wird werde wählen müssen

Antwort

1

Sie möchten die Value in angeben Ihre CreateFcn als auch, weil standardmäßig der Wert 0 ist, die außerhalb Ihrer Min/Max Bereich ist, die dazu führen, dass die uicontrol nicht gerendert werden. Auch würde ich empfehlen die SliderStep aus der CreateFcn Einstellung als auch

function slider2_CreateFcn(hObject, eventdata, handles) 
    if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) 
     set(hObject,'BackgroundColor',[.9 .9 .9]); 
    end 

    set(hObject, 'Max', 10, 'Min', 1, 'Value', 1, 'SliderStep', [1/9 1/9]); 

auch, wenn Sie den Schieberegler Wert zwingen wollen immer eine ganze Zahl zu sein (auch wenn gezogen), können Sie runden das Value Eigenschaft innerhalb der Rückruf des Schiebereglers

function slider2_Callback(hObject, eventdata, handles) 
    value = round(get(handles.slider2, 'Value')); 
    set(handles.slider2, 'Value', value); 

    % Do whatever you need to do in this callback 
end 
Verwandte Themen