MATLAB Answers

Hot to change the settings of multiple gui components at the same time

11 views (last 30 days)
Hello,
I have a programmatically written gui. Their units are in pixels. After writing everything in pixels, I wanted to set all the units to normalized. I don't want to do it one by one. Do you know how I can set to normalized for multiple handles at the same time?
Thank you,
Emre

  0 Comments

Sign in to comment.

Accepted Answer

Sean de Wolski
Sean de Wolski on 10 Aug 2012
Okay:
handles = struct('h1',pi,'h2',3,'edit1',17); %exmaple handles
set(cell2mat(struct2cell(handles)),'somefield',some_value);

  3 Comments

Seyhan Emre Gorucu
Seyhan Emre Gorucu on 10 Aug 2012
Hello,
Can you help me with this error?
clc
clear
a=figure;
position=get(a,'position');
dx=position(3);
dy=position(4);
handles.text=uicontrol(a,'style','text',...
'units','pixels',...
'string','anayin',...
'position',[dx/2 dy/2 100 40],...
'fontsize',8);
guidata(handles.text,handles)
tobenormalized=struct('handles.text',handles.text);
set(cell2mat(struct2cell(tobenormalized)),'units',normalized);
Sean de Wolski
Sean de Wolski on 10 Aug 2012
You can't have the '.' in the field name of a struct. It looks lik eyou probably want:
tobenormalized=struct('text',handles.text);

Sign in to comment.

More Answers (2)

Matt Fig
Matt Fig on 10 Aug 2012
Pass in a vector of the handles:
u(1) = uicontrol;
u(2) = uicontrol;
u(3) = uicontrol;
set(u,'units','norm')

  5 Comments

Show 2 older comments
Addy
Addy on 9 May 2018
In that case, something like this would be easiest of all!
set(findall(gcf,'units','pix'),'units','norm')
OMG. Thank you very much for this. I finally found this gold after 5 hours of madness :^)

Sign in to comment.


Products

Community Treasure Hunt

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

Start Hunting!

Translated by