How to programmatically get a list of all app properties in AppDesigner

8 visualizzazioni (ultimi 30 giorni)
Hi,
I'm writing a large app in appDesigner, and I want to create a list / text area that would display all of the app property fields. I can't find a way to programatically pull their names, does anyone know a way of doing this?
P.S. I'm on 2022b.
Thanks!
VS

Risposta accettata

Abolfazl Chaman Motlagh
Abolfazl Chaman Motlagh il 15 Set 2022
you can get all public properties with :
P = properties(app);
for all private and public properties you can use meta class properties function:
mc = ?appname
use the application name for appname (the name you saved .mlapp file, or name that appears after classdef at first line).
after that call for property list:
P = mc.PropertyList;
it give you a property array with the size of number of properties. and for eachone their information. for example run :
P(1)
or
P(1).Name
( i think the first index always is UIFigure)
a simple example for listing the names:
for i=1:numel(P)
Name{i} = P(i).Name;
end
  1 Commento
Vitek Stepien
Vitek Stepien il 16 Set 2022
Thank you, the second method works great! I only neede the private properties, I was able to get the public ones on my own but not the private ones. I used the following to get and list in a ListBox only private, following your code suggestion:
mc = ?MyApp;
P = mc.PropertyList;
ii = 1;
for n = 1:numel(P)
if strcmp(P(n).GetAccess,'private')
Items{ii} = P(n).Name;
ii = ii+1;
end
end
app.ListofpropertiesListBox.Items = Items;

Accedi per commentare.

Più risposte (1)

Joseph Reynolds
Joseph Reynolds il 4 Apr 2025
To identify the properties that are created for just the GUI I used the P.Validation.Class.Name.
name = 'appFileName';
mc = eval(['?', name]);
P = mc.PropertyList;
np = length(P);
flt = false(np,1);
for n = 1:np
flt(n) = contians({P.Validation.Class.Name}, 'matlab.ui');
end
The Auto generated Properties have validation that start with 'matlab.ui'.
I use the filter to remove the auto generated properties.
P_used = P(~flt);

Categorie

Scopri di più su Downloads in Help Center e File Exchange

Prodotti


Release

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by