Clear Filters
Clear Filters

Best method of gathering varying amounts of user data via dialog boxes?

1 view (last 30 days)
I am aiming to create a dialog box that takes two numerical quantities from the user and simply save it to two matrices upon pressing the 'OK' button. The user is essentially building 'layers' of material and is inputting a thickness and an angle associated with each layer. The total number of 'layers' can range 1 < n < 64. Therefore I am looking for the ability to add additional rows of inputs on demand (by pressing a +new layer button), or use a table of sorts (like the one below), so the dialog box doesn't start with 64 blank lines.
This is similar to what I have in mind, except the table on the left would be editable or replaced by text boxes:
Thank you!

Accepted Answer

Ankit Bhardwaj
Ankit Bhardwaj on 24 Apr 2017
Edited: Walter Roberson on 24 Apr 2017
You can use a uitable. You can define a push button callback which increases the size of your table by one every time the button is pushed. Here is a sample code which increases the size of the uitable by one with a push button callback. Please note that this code populates the table with random integers. You may need to modify this based on your workflow.
function variableTable
f = figure;
t = uitable(f,'Data',randi(100,10,3),'Position',[20 20 262 204]);
b = uicontrol('Style','pushbutton','Position',[300 20 250 40],'Callback', @(s,e) pushButtonCB(s,e,t));
function pushButtonCB(s,e,t)
row = randi(100,1,3);
t.Data = [t.Data;row];
  1 Comment
Jesse S
Jesse S on 24 Apr 2017
Thank you! I ended up basically using this method, resulting in the following dialog box. The + - buttons add rows to the table.

Sign in to comment.

More Answers (0)

Categories

Find more on Simulink Environment Customization in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!