Figure problem: disappeared text and radio buttons in figure/questionnaire after changing fron 2012b to 2015b

1 次查看(过去 30 天)
I wrote a small questionnaire (exemplary m-file attached) and after we updated the Matlab from 2012b to 2015b the content of this questionnaire (text, radio buttons...) disappered / is empty. No buttons or text are visible .
The code:
hFig = figure('Visible','off', 'Menu','none', 'Name','SF12', 'Resize','on',...
'units','normalized','outerposition', [0 0 1 1], 'Color', [1 1 1]);
uicontrol('Style','text','HandleVisibility','off','BackgroundColor', [1 1 0],...
'String','Headline-Text',...
'Position',[0.34 0.91 0.8 0.06],'Units','Normalized','HorizontalAlignment','left','FontSize',20,'FontName','Georgia')
%%Question 1
hBtnGrp1 = uibuttongroup('Position',[0 0.75 0.495 0.07], 'Units','Normalized','BackgroundColor', [1 1 1]);
uicontrol('Style','text','Parent',hBtnGrp1, 'HandleVisibility','off','BackgroundColor', [1 1 1],...
'String','1. This is the first question?',...
'Position',[0.02 0 0.4 0.6],'Units','Normalized','HorizontalAlignment','left','FontSize',12.5,'FontName','Georgia')
uicontrol('Style','text','Parent',hBtnGrp1, 'HandleVisibility','off',... 'String','never','HorizontalAlignment','center','BackgroundColor', [1 1 1],...
'Position',[0.42 0.6 0.15 0.29],'Units','Normalized','FontSize',12,'FontName','Georgia')
uicontrol('Style','text','Parent',hBtnGrp1, 'HandleVisibility','off',... 'String','sometimes','HorizontalAlignment','center','BackgroundColor', [1 1 1],...
'Position',[0.555 0.6 0.1 0.29],'Units','Normalized','FontSize',12,'FontName','Georgia')
uicontrol('Style','text','Parent',hBtnGrp1, 'HandleVisibility','off',... 'String','few','HorizontalAlignment','center','BackgroundColor', [1 1 1],...
'Position',[0.655 0.6 0.1 0.29],'Units','Normalized','FontSize',12,'FontName','Georgia')
uicontrol('Style','text','Parent',hBtnGrp1, 'HandleVisibility','off',... 'String','ever','HorizontalAlignment','center','BackgroundColor', [1 1 1],...
'Position',[0.755 0.6 0.1 0.29],'Units','Normalized','FontSize',12,'FontName','Georgia')
uicontrol('Style','text','Parent',hBtnGrp1, 'HandleVisibility','off',... 'String','dont know','HorizontalAlignment','center','BackgroundColor', [1 1 1],...
'Position',[0.855 0.6 0.1 0.29],'Units','Normalized','FontSize',12,'FontName','Georgia')
uicontrol('Style','Radio', 'Parent',hBtnGrp1, 'HandleVisibility','off',...
'Position',[0.5 0.3 0.1 0.2],'Units','Normalized', 'Tag','1','BackgroundColor', [1 1 1])
uicontrol('Style','Radio', 'Parent',hBtnGrp1, 'HandleVisibility','off',...
'Position',[0.6 0.3 0.1 0.2],'Units','Normalized', 'Tag','2','BackgroundColor', [1 1 1])
uicontrol('Style','Radio', 'Parent',hBtnGrp1, 'HandleVisibility','off',...
'Position',[0.7 0.3 0.1 0.2],'Units','Normalized', 'Tag','3','BackgroundColor', [1 1 1])
uicontrol('Style','Radio', 'Parent',hBtnGrp1, 'HandleVisibility','off',...
'Position',[0.8 0.3 0.1 0.2],'Units','Normalized', 'Tag','4','BackgroundColor', [1 1 1])
uicontrol('Style','Radio', 'Parent',hBtnGrp1, 'HandleVisibility','off',... 'Position',[0.9 0.3 0.1 0.2],'Units','Normalized', 'Tag','5','BackgroundColor', [1 1 1])
%%some more Qestiones...
% ...
%%Name/ID of the subject
hEdit1 = uicontrol('Style','edit', 'Position',[0.75 0.2 0.05 0.03], 'Units','Normalized','FontWeight', 'bold',... 'FontSize', 14, 'String','','FontName','Georgia','BackgroundColor', [1 1 1]);
%%the ready-button
uicontrol('Style','pushbutton', 'String','ready', 'FontSize', 14, 'FontWeight', 'bold',...
'Position',[0.70 0.1 0.1 0.05], 'Units','Normalized','Callback',{@button_callback})
set(hFig, 'Visible','on') function button_callback(~, ~)
%%Answer weight
Q1(5,1:2) = [5 , 0];
Q1(4,1:2) = [4 , 1];
Q1(3,1:2) = [3 , 2];
Q1(2,1:2) = [2 , 3];
Q1(1,1:2) = [1 , 4];
A1(1,1) = str2double(get(get(hBtnGrp1,'SelectedObject'),'Tag'));
A1Score(1,1:2) = Q1(str2double(get(get(hBtnGrp1,'SelectedObject'),'Tag')),:);
assignin('base','Answer',A1)
assignin('base','Score',A1Score)
evalin('base', [get(hEdit1, 'String') '.Answer = Answer;'])
evalin('base', [get(hEdit1, 'String') '.Score = Score;'])
end
end

回答(3 个)

Mike Garrity
Mike Garrity 2016-3-14
Starting in R2014b, the parsing of the property/value pairs in the input arguments got pickier. Your code has lots of instances of this pattern:
'Position',[0.70 0.1 0.1 0.05], 'Units','Normalized', ...
Since the properties are now parsed strictly in left-to-right order, this will do exactly what it says. That is, it will set the Position property to [.7 .1 .1 .05] in the current units (which is pixels), and then it will set the Units property to normalized. The result is a tiny uicontrol that you can't see.
Before the graphics objects became real MATLAB Objects, they had a lot of special code to catch things like this that didn't make sense and quietly fix them, but there wasn't a place to stick that code in the new system.
You'll want to switch the order of your properties around like so:
'Units','Normalized', 'Position',[0.70 0.1 0.1 0.05], ...

Julie
Julie 2016-3-11
Have you tried changing the visibility of the objects. It may be set to false, especially since you create them when the parent is not visible.
set("Your Elements",'visible','on')
I tried to run your code but it did not work so I could not test it myself.

Philipp Schenk
Philipp Schenk 2016-3-15
solved

类别

Help CenterFile Exchange 中查找有关 Interactive Control and Callbacks 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by