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

3 visualizzazioni (ultimi 30 giorni)
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

Risposta accettata

Sean de Wolski
Sean de Wolski il 10 Ago 2012
Okay:
handles = struct('h1',pi,'h2',3,'edit1',17); %exmaple handles
set(cell2mat(struct2cell(handles)),'somefield',some_value);
  3 Commenti
Sean de Wolski
Sean de Wolski il 10 Ago 2012
You can't have the '.' in the field name of a struct. It looks lik eyou probably want:
tobenormalized=struct('text',handles.text);

Accedi per commentare.

Più risposte (2)

Matt Fig
Matt Fig il 10 Ago 2012
Pass in a vector of the handles:
u(1) = uicontrol;
u(2) = uicontrol;
u(3) = uicontrol;
set(u,'units','norm')
  5 Commenti
Addy
Addy il 9 Mag 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 :^)
Kevin Phung
Kevin Phung il 25 Mar 2019
Modificato: Kevin Phung il 25 Mar 2019
ditto that!! That's one beautiful line. Thanks @Loginatorist

Accedi per commentare.


Seyhan Emre Gorucu
Seyhan Emre Gorucu il 10 Ago 2012
Thank you guys for the answers.

Categorie

Scopri di più su Function Creation in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by