I am currently trying to create a gui in GUIDE. I have created 2 tabs using uitab in a uitabgroup. I have 2 panels, of which 1 is changing when you switch between tabs (panel P1a and P1b). The other should remain the same (P2). My question is, how can I see panel P2 in both tabs? Code is as follows:
handles.tgroup = uitabgroup('Parent', handles.figure1)
handles.tab1 = uitab('Parent', handles.tgroup, 'Title', 'Import Text')
handles.tab2 = uitab('Parent', handles.tgroup, 'Title', 'Import Excel')
set(handles.P1a,'Parent',handles.tab1)
set(handles.P2,'Parent',handles.tab1)
set(handles.P1b,'Parent',handles.tab2)
set(handles.P2,'Parent',handles.tab2)
Currently, this code does not work, since I only connect P2 to tab2 because of the last line.
Thanks, Reinier

 Réponse acceptée

Adam
Adam le 4 Nov 2016

0 votes

Just reparent it in the 'SelectionChangedFcn' callback of the uitabgroup. It only needs to be parented by a tab if that tab is the currently selected one since you can never view 2 tabs at the same time.

3 commentaires

Reinier Tromp
Reinier Tromp le 4 Nov 2016
Modifié(e) : Reinier Tromp le 4 Nov 2016
Thanks, that sounds like it should work. Is there a way to specify in GUIDE the SelectionChangedFcn callback of the uitabgroup? I am unsure how to code it in the current structure (usually callbacks are created automatically when I create the lay-out in GUIDE). Currently I have tried this (based on my previous code):
function tgroup_SelectionChangedFcn(hObject,eventdata,handles)
selectedTab = get(hObject,'SelectedTab');
if strcmp(selectedTab,'Import Text')==1
set(handles.P2,'Parent',handles.tab1)
elseif strcmp(selectedTab,'Import Excel')==1
set(handles.P2,'Parent',handles.tab2)
end
guidata(hObject,handles);
Adam
Adam le 4 Nov 2016
Modifié(e) : Adam le 4 Nov 2016
Tabs are not supported in GUIDE so you have to do them programmatically, but I assume you have already created your uitabgroup programmatically anyway?
Something similar to this should work
hPanel = uipanel( ... )
hMainTabGroup = uitabgroup( ...
'Parent', hFig,...
'SelectionChangedFcn', @(src,evt) tabChangedCallback( evt, hPanel ) );
function tabChangedCallback( evtData, hPanel )
hPanel.Parent = evtData.NewValue;
end
Reinier Tromp
Reinier Tromp le 4 Nov 2016
Thank you so much, I managed to get it to work.
In GUIDE the last 'end' is not allowed though, fyi

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by