Compiled GUI not appearing

I have been trying to compile a MATLAB based GUI and the code compiles without error. The GUI appears properly when running within MATLAB, but when I try to run the executable, the GUI itself does not appear, but is present in the Task Manager. While the program in question is a bit too large to post here, I have been able to duplicate the problem with a much smaller simple GUI. The m-file for the GUI is attached.
I am using MATLAB 2014A on 64 bit Windows 7 Professional.

4 Commenti

The file did not get attached
Joel Marchand
Joel Marchand il 15 Set 2015
Modificato: Walter Roberson il 15 Set 2015
I have attached the m-file. If that fails, the relevant code is below, and can be copied and pasted into a new m-file.
classdef testGUI < handle % TESTGUI Simple GUI to demonstrate that the GUI itself does not show % up when compiled.
properties
h;
incButton;
decButton;
txtBx;
end
methods
function T = testGUI()
T.h = figure();
T.incButton = uicontrol(T.h,...
'style', 'pushbutton',...
'string', 'Increment',...
'callback', @(s,e)T.buttonCallback(s,e),...
'units', 'normalized',...
'position', [0.1, 0.8, 0.8, 0.1]);
T.decButton = uicontrol(T.h,...
'style', 'pushbutton',...
'string', 'Decrement',...
'callback', @(s,e)T.buttonCallback(s,e),...
'units', 'normalized',...
'position', [0.1, 0.6, 0.8, 0.1]);
T.txtBx = uicontrol(T.h,...
'style', 'edit',...
'enable', 'inactive',...
'string', '0',...
'units', 'normalized',...
'position', [0.1, 0.4, 0.8, 0.1]);
end
function buttonCallback(T, s, ~)
num = str2double(get(T.txtBx, 'string'));
if eq(s, T.incButton)
num = num + 1;
elseif eq(s, T.decButton)
num = num - 1;
end
set(T.txtBx, 'string', num2str(num));
end
end
end
Does it make a difference if you add a .m that calls the constructor explicitly ?
Joel Marchand
Joel Marchand il 15 Set 2015
I have tried this, and the GUI still remains elusive.
Specifically, I tried compiling an M-file containing the following code:
function makeAtestGUI() T = testGUI(); uiwait(T.h); end
We have a pretty restrictive security profile on our PCs. Is it possible that something in the security profile is preventing the GUI from appearing? If so, where would I try to look?

Accedi per commentare.

 Risposta accettata

Joel Marchand
Joel Marchand il 21 Set 2015

0 voti

I just installed 2015B on my computer, and the problem seems to have gone away. While I do not know why it did not work in 2014A, the problem seems to been fixed.

Più risposte (1)

Sean de Wolski
Sean de Wolski il 15 Set 2015
Modificato: Sean de Wolski il 15 Set 2015
What Walter said.
function makeAtestGUI()
T = testGUI();
uiwait(T.h);
end
Now compile this.

Categorie

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by