我设计了一组三个uitabpanels对象。
htab = uitabgroup('v0');
th1 = uitab('v0',htab,'title','Panel 1','ButtonDownFcn',...
@th1_ButtonDownFcn);
th2 = uitab('v0',htab,'title','Panel 2','ButtonDownFcn',...
@th2_ButtonDownFcn);
th3 = uitab('v0',htab,'title','Panel 3','ButtonDownFcn',...
@th3_ButtonDownFcn);
当我通过鼠标点击更改选定的uipanel时,我的意图是在它们之间进行平滑过渡。我假装使用ButtonDownFcn函数来实现它改变其中包含的元素的“Visible”属性(我基于this page的描述部分得到了这个想法。)
set(handles.th2,'Visible','off');
set(handles.th3,'Visible','off');
...
function th1_ButtonDownFcn(hObject, eventdata)
handles = guidata(fh);
set(handles.th1,'Visible','on');
set(handles.th2,'Visible','off');
set(handles.th3,'Visible','off');
guidata(fh,handles);
end
function th2_ButtonDownFcn(hObject, eventdata)
handles = guidata(fh);
set(handles.th1,'Visible','off');
set(handles.th2,'Visible','on');
set(handles.th3,'Visible','off');
guidata(fh,handles);
end
function th3_ButtonDownFcn(hObject, eventdata)
handles = guidata(fh);
set(handles.th1,'Visible','off');
set(handles.th2,'Visible','off');
set(handles.th3,'Visible','on');
guidata(fh,handles);
end
其中
fh:图中的句柄包含uitabpanels。
handles.th1,handles.th2,handles.th3:分别包含在每个uitabpanel中的元素的句柄。
然而,它没有奏效(我点击每个uitabpanel的标签,它们的可见性不会改变),我不明白为什么。
答案 0 :(得分:0)
总之,当您单击选项卡的标签时,UITAB的ButtonDownFcn和SelectionChangeFcn函数已处于活动状态。因此,不可能实现所需的目标(平滑的光学过渡),因为获得的结果(修改上述功能)与无所事事相同。