如何在按下按钮时显示图片(Matlab指南)

时间:2016-08-15 11:28:07

标签: matlab user-interface matlab-guide

我正在尝试使用GUIDE创建一个Matlab GUI。我只想在按下按钮(回调功能)时插入带有图片的图片,并在按钮释放后显示默认图片。我该如何实现呢?我使用轴在上述位置显示图片

function mc_right_Callback(hObject, eventdata, handles)
% hObject    handle to mc_right (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
matlabImage2 = imread('Coor2.png'); 
imshow(matlabImage2, 'Parent', handles.axes7);
%Vxm_Port_Send(handles.port_handle,sprintf('F,C,I3M-%d,R',handles.x_steps)); % Move along +x (right)

1 个答案:

答案 0 :(得分:1)

问题是MATLAB uicontrols不允许您创建单独的回调函数,这些函数在按下按钮或按钮释放时执行。例如,按钮将在按钮释放时执行其Callback function。它还有一个ButtonDownFcn function,可以在按下按钮时执行,但此回调仅在Enable property设置为'off''inactive'时有效,在这种情况下{ {1}}功能已禁用。换句话说,您不能同时使用CallbackButtonDownFcn来获取按钮按下和释放的响应。

...然而

figure window确实可以为button pressesbutton releases甚至mouse motionscroll wheel activity指定单独的回调函数。这就是我通常克服uicontrol行为中的缺点的方法:我定义了当它们超过窗口某些部分时执行的图形级回调。这是一个例子:

Callback

当您运行上面的操作时,它会在左下角创建一个带有轴和小按钮的窗口。该按钮没有定义回调。当您在任何地方单击鼠标但在按钮上方没有任何反应时。但是,当您在按钮上单击鼠标(使其成为图中的CurrentObject)时,图像将变为可见,按住按钮时按钮将会按下。释放按钮使图像再次不可见,按钮显示正常。从本质上讲,按钮只是一个虚拟的东西,除了给用户一种幻觉,他们正在按下它以使事情发生。这真是人物回调做的工作。