2015-11-12 5 views
0

Я делаю эквалайзер с тремя слайдами для низких, средних и высоких частот. Чтобы установить значение по умолчанию 0 дБ (1), ползунки должны начинаться посередине. Я получил это работает так:Сброс ползунка по умолчанию по MATLAB GUIDE

function interfaz_OpeningFcn(hObject, eventdata, handles, varargin) 
set(handles.low,'Value',0.5); 
handles.low=initialvalue; 
guidata(hObject, handles); 

Я хочу сделать кнопку так, чтобы при нажатии на нее, она делает ползунок вернуться к исходному значению. Я пробовал так:

function eq_reset_Callback(hObject, eventdata, handles) 
set(handles.low,'Value',0.5); 
handles.low=initialvalue; 
guidata(hObject, handles); 

Это вызывает следующую ошибку:

Error using handle.handle/set 
Invalid or deleted object. 

Error in interfaz>eq_reset_Callback (line 644) 
set(handles.low,'Value',0.5); 

Error in gui_mainfcn (line 96) 
     feval(varargin{:}); 

Error in interfaz (line 42) 
    gui_mainfcn(gui_State, varargin{:}); 

Error in 
@(hObject,eventdata)interfaz('eq_reset_Callback',hObject,eventdata,guidata(hObject)) 


Error while evaluating uicontrol Callback 

Любые идеи, почему это происходит? Альтернативные способы сделать это?

+0

Вы перезапись ручку с 'handles.low = InitialValue;' – excaza

ответ

0

Попробуйте следующий код:

Функция открытия:

function interfaz_OpeningFcn(hObject, eventdata, handles, varargin) 
handles.low_initialvalue = 0.5; 
set(handles.low,'Value',handles.low_initialvalue); 
guidata(hObject, handles); 

Функция Кнопка обратного вызова:

function eq_reset_Callback(hObject, eventdata, handles) 
set(handles.low,'Value',handles.low_initialvalue); 
guidata(hObject, handles); 
Смежные вопросы