0

我设计了一组三个 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 函数更改其中包含的元素的“可见”属性来实现它(我根据本页的描述部分得到了这个想法)。

    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 的每个选项卡,它们的可见性没有改变),我不明白为什么。

4

1 回答 1

0

总之,当您单击选项卡的标签时,UITAB 的 ButtonDownFcn 和 SelectionChangeFcn 函数已经处于活动状态。所以不可能达到预期的目标(平滑的光学转换),因为获得的结果(修改提到的功能)与什么都不做是一样的。

于 2011-06-12T01:27:08.343 回答