structdlg: a dialogue to edit structures

version (8.47 KB) by Emmanuel Farhi
A dialogue is built to display editable fields from a structure


Updated 21 Jun 2017

View License

structdlg: a dialogue which allows to modify structure(s) in a table

In modal (default) creation mode, the updated structure is returned upon
closing the window. A modal dialog box prevents a user from interacting
with other windows before responding to the modal dialog box.
In non-modal creation mode, the window is displayed, and remains visible
while the execution is resumed. The call to structdlg returns a
configuration which should be used as follows to retrieve the modified
structure later:
ad = structdlg(a, struct('CreateMode','non-modal'));
% continue execution, and actually edit and close the window
% ...
% get the modified structure (when closing window)
Data = getappdata(0,ad.tmp_storage); fields=Data(:,1); Data=Data(:,2:end);
new_a = cell2struct(reshape(Data, ad.size), fields, 1);
rmappdata(0, ad.tmp_storage);

structure: the initial struct to edit
options: a set of options, namely:
options.Name: the name of the dialogue (string)
options.FontSize: the FontSize used to display the table
default: use the system FontSize.
options.ListString: the labels to be used for each structure field (cell).
the cell must have items 'fieldname description...'
default: use the structure member names.
options.TooltipString: a string to display (as help)
options.CreateMode: can be 'modal' (default) or 'non-modal'.
options.Tag: a tag for the dialogue.
options.CloseRequestFcn: a function handle or expresion to execute when
closing the dialogue in 'non-modal' mode.

structure: the modified structure in 'modal' mode (default),
or the dialogue information structure in 'non-modal' mode.

a.Test=1; a.Second='blah'; structdlg(a)
options.ListString={'Test This is the test field','Second 2nd'};
structdlg([a a], options);

Version: June 2017
(c) E.Farhi, ILL. License: BSD. <>

Cite As

Emmanuel Farhi (2022). structdlg: a dialogue to edit structures (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2010a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Inspired by: class2str

Community Treasure Hunt

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

Start Hunting!