Плавный переход (оптический эффект) между уитабанелями в Matlab - PullRequest
0 голосов
/ 06 июня 2011

Я спроектировал группу из трех объектов 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 щелчком мыши. Я притворяюсь, что это достигается изменением свойства Visible элементов, содержащихся в них, с помощью функции ButtonDownFcn (эта идея возникла на основе раздела описания 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, и видимость их не меняется), и я не понимаю, почему.

1 Ответ

0 голосов
/ 12 июня 2011

В заключение, функции ButtonDownFcn и SelectionChangeFcn UITAB уже активны, когда вы нажимаете на ярлыке вкладки. Поэтому невозможно достичь желаемой цели (плавный оптический переход), потому что полученный результат (изменение упомянутых функций) тот же, что ничего не делать.

...