Hi all,
I'm trying to create a ui-generating function that is called several time instead of raw-coding every tab / button ... of every section of my interface.
To do it, I need to call this function for different tabs, ie different parents.
For example I have this kind of code :
obj.Display.Compare_Options = uicontrol(obj.Display.Panel_Perfo,'style','check','unit','normalized'); %shortened compared to real code
Where
  • obj.Display.PanelPerfo is a uitab
  • obj.Display.Compare_Options is a struct
And I'd like to be able to refer to different ui tab, as if I had something like :
uitabname = Panel_Perfo
obj.Display.Compare_Options = uicontrol (obj.Display.uitabname,'style','check','unit','normalized')
But when I do this, I have the error "Reference to non-existent filed 'uitabname' because MATLAB is searching for
obj.Display.uitabname
Where I want it to search for
obj.Display.Panel_Perfo
In order to change tab name based on callback source.
How can I make this happen ? Thanks !

 채택된 답변

Rik
Rik 2022년 8월 26일
편집: Rik 2022년 8월 26일

0 개 추천

If you're using a struct, you need to do this:
uitabname = 'Panel_Perfo';
obj.Display.Compare_Options = uicontrol(obj.Display.(uitabname),...
'Style','check',...
'Unit','Normalized')
If obj.Display is an object, you probably need to use get.

댓글 수: 2

Alexis
Alexis 2022년 8월 26일
obj.Display.(uitabname) works exactly how I wanted !
Thanks a lot !
Rik
Rik 2022년 8월 26일
You're welcome. I prefer to use line continuations to break up long lines of code and easily spot which parameter has which value. You may want to consider a similar style.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Migrate GUIDE Apps에 대해 자세히 알아보기

제품

릴리스

R2020a

질문:

2022년 8월 26일

댓글:

Rik
2022년 8월 26일

Community Treasure Hunt

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

Start Hunting!

Translated by