When using appdesigner, I want to initialize a property as an array of labels and text area
properties (Access = private)
comp_ui_obj
end
function startupFcn(app)
app.comp_ui_obj(1) = app.CompLabel;
% 2..n assignments here
end
The problem is that the declaration of comp_ui_obj is by default double. Because of this app.comp_ui_obj(1) will contain a double instead of a matlab.ui.control object.
So, it seems that app.comp_ui_obj needs to be initialized as an empty matlab.ui.control object before the assignment.
With some classes, the empty function can be used for this (ex: uint8.empty). However, matlab.ui.control.empty does not work.
So, how do we initialize an empty ui control in appdesigner? How do we initialize a vector of empty elements?

1 件のコメント

Cris LaPierre
Cris LaPierre 2020 年 12 月 22 日
Could you provide more detail on why you are wanting to do this? What is the need driving this workflow?

サインインしてコメントする。

 採用された回答

Cris LaPierre
Cris LaPierre 2020 年 12 月 22 日

1 投票

Try setting your property to an empty Label class using the following
comp_ui_obj = matlab.ui.control.Label.empty

1 件のコメント

Bruno Pilon
Bruno Pilon 2020 年 12 月 22 日
This is exactly what I was looking for. I was missing the capital L of Label. Thank you!

サインインしてコメントする。

その他の回答 (1 件)

Bruno Pilon
Bruno Pilon 2020 年 12 月 22 日

0 投票

I found one way to initialize the ui control variable:
dummy_obj = uilabel(app.UIFigure);
app.comp_ui_obj = repelem(dummy_obj,nb_of_objects);
Then, the assignments work as app.comp_ui_obj already contains ui objects.

カテゴリ

ヘルプ センター および File Exchange で Develop Apps Using App Designer についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by