2013-03-15 38 views
0

我的GUI在单个搜索按钮下有两个复选框,即colourcheckTexturecheck。如果我点击搜索按钮,它应该检查上面提到的两种类型,并且应该运行相应的程序,并且如果两个盒子都处于“MIN”位置,即没有被检查,则它应该给用户一个消息,说明select type of searchMATLAB GUI中的复选框

我修剪了search_callback程序。

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


% --- Executes on button press in colourcheck. 
function colourcheck_Callback(hObject, eventdata, handles) 
% hObject handle to colourcheck (see GCBO) 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles structure with handles and user data 

% Hint: get(hObject,'Value') returns toggle state of colourcheck 
if (get(hObject,'Value') == get(hObject,'Max')) 
    Search_Callback(hObject, eventdata, handles) 
else 
    % Checkbox is not checked-take approriate action 
end 

但是我无法满足要求。请帮助我,任何解决方案都是可观的。

回答

1

从您问题中的描述中,您不希望Search_Callback在您点击colourcheck_Callback时被调用。相反,您希望在选择了哪个复选框的情况下单击搜索按钮时执行其他一些操作。您可以对搜索按钮使用类似以下的回拨:

% --- Executes on button press in search. 
function search_Callback(hObject, eventdata, handles) 
% hObject handle to search (see GCBO) 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles structure with handles and user data (see GUIDATA) 

isTexture = get(handles.Texturecheck,'Value'); 
isColour = get(handles.colourCheck,'Value'); 
if and(isTexture, isColour) 
    'do something' 
elseif isColour 
    'do something else' 
elseif isTexture 
    'do something else' 
else 
    'warn user' 
end 
guidata(hObject, handles); 
+0

非常感谢。但是在colourcheck和Texturecheck_callback函数中写什么呢? – Chethan 2013-03-16 11:11:29

+0

您不需要在colourcheck和texturecheck回调中写入任何内容。你用get(handles.Texturecheck,'Value')读取它们的值并获取(handles.colourCheck,'Value')。如果你喜欢答案,考虑接受它! :) – Molly 2013-03-16 14:45:59

+0

恩,谢谢:) – Chethan 2013-03-16 15:08:48