creating multiwindow apps in app designer 2020a

hi,
I have been trying to create a multi window app just like the example in the documentation but its not working.
I think the problem is that i am not able to get my secondary app start function to be startFnc(app, mainapp, x, y) like the example. what I keep getting is startFnc(app, event)
and the error is too many parameters when I click th button to open secondary window
the code line at the error is app.dialogApp=newwindowname(app,x,y)
any advice?

5 comentarios

Adam Danz
Adam Danz el 14 de Jul. de 2020
You need to provide the entire error message and the associated code.
ma sd
ma sd el 14 de Jul. de 2020
I mentioned the code above
the error is "Eror using new window name Too many input arguments"
ma sd
ma sd el 14 de Jul. de 2020
byw the new window name is the name of the secondary window
Adam Danz
Adam Danz el 14 de Jul. de 2020
That's not the entire error message. There's a lot of info in a typical error message and that info is usually helpful.
The error message will likely point to a line of code. We also need to see that line of code.
ma sd
ma sd el 14 de Jul. de 2020
Editada: ma sd el 14 de Jul. de 2020
ok so the code follows exactly the help on multiwindows in the link below
the error shows at option button callback at the second line (btw app.x and app.y are defined under private properties just like the example above thats why im suspecting the start function of the new window since i cant get it to match the one in the example (i.e startFnc(app, mainapp, x, y) ) )
%disable plot options button while dialog is open
app.OptionsButton.Enable = 'off';
%open the options dialog and pass input
app.DialogApp = New_window_name(app, app.x, app.y);
the error inside app desinger is "Error using new_window_name Too many input arguments"
in the command window the error is
" Eror using new window name Too many input arguments
Error in Main_window/OptionsButtonPushed
app.dialogApp = new_window_name(app, x, y);
Error using matlab.ui.control.internal.controller.componentController/executeUserCallback
Error while evaluating Button PrivateButtonPushedFcn"

Iniciar sesión para comentar.

 Respuesta aceptada

Adam Danz
Adam Danz el 14 de Jul. de 2020
The starup function in app 2 will have its own 1st input "app". You shouldn't pass that into the app.
Try this.
app.DialogApp = New_window_name(app.x, app.y);
If that doesn't solve the prblem, please provide,
  1. The new full error message if one exists (copy-pasted or screen shot)
  2. The Startup function in app 2.

6 comentarios

ma sd
ma sd el 14 de Jul. de 2020
Editada: ma sd el 14 de Jul. de 2020
my code is as shown below
if i take app out of the button callback i get the same exact error
he error inside app desinger is:
"Error using new_window_name Too many input arguments"
in the command window the error is:
" Eror using new window name Too many input arguments
Error in Main_window/OptionsButtonPushed
app.dialogApp = new_window_name(app, x, y);
Error using matlab.ui.control.internal.controller.componentController/executeUserCallback
Error while evaluating Button PrivateButtonPushedFcn"
%main window properties
properties (Access = private)
dialogApp
x='a';
y='b';
end
methods (Access = public)
function mm(app,x,y)
app.x=x;
app.y=y;
msgbo(sprintf('%1s \n %2s',x,y));
end
end
%-----------------------------------
%start up function for main window
mm(app, app.x, app.y);
%-----------------------------------
%buttonPushed callback
app.dialogApp= new_window_name(app.x, app.y);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%secondary window properties
properties (Access = private)
CallingApp
end
%secondary window start up function
function StartupFcn(app) %this line is built in
app.CallingApp = mainapp;
There's your error.
function StartupFcn(app) %this line is built in
As the demo in the MathWorks documentation shows, you need to add x and y inputs in the startup function which appears to be correct in the code from your question but is missing from the code you shared above.
startFnc(app, mainapp, x, y)
But now that I see the actual code, you will need to pass the app #1 handle, too,
app.DialogApp = New_window_name(app, app.x, app.y);
This is why I asked for the code from the beginning :)
ma sd
ma sd el 14 de Jul. de 2020
Editada: ma sd el 14 de Jul. de 2020
thank you i tried overriding the example with my code and it worked because the secondary startfunction had all the variables in there.
however, how can I get the start function to contain (app, app.x, app.y) by myself as its builtin in app designer and i don't want to override the example?
ma sd
ma sd el 14 de Jul. de 2020
great thanks
Adam Danz
Adam Danz el 14 de Jul. de 2020
Glad I could help.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Develop Apps Using App Designer en Centro de ayuda y File Exchange.

Productos

Versión

R2020a

Preguntada:

el 14 de Jul. de 2020

Comentada:

el 14 de Jul. de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by