Rank: 363898 based on 0 downloads (last 30 days) and 0 file submitted
photo

Eff

E-mail

Personal Profile:
Professional Interests:

 

Watch this Author's files

 

Comments and Ratings by Eff View all
Updated File Comments Rating
22 Aug 2013 GUI Layout Toolbox Layout management objects for MATLAB GUIs Author: Ben Tordoff

Hi folks annoyed by TabPanel issues,

I have reported the problem with different axes that are displayed on top of other axes within different tabs of a TabPanel in July 2012, Alexander reproduced the problem in January 2013 and in May Collin has reported similar issues.

After I have encountered the problem first I figured out that that changing the DefaultRenderer to painters resolved the issue (set(0,'DefaultFigureRenderer','painters')). If you have a similar problem, could you please confirm that this works for you, too? As I am creating 3d plots this is not an option for me, so after Ben's hint I can confirm that resizing the figure resolves the issue, thus I have written a callback function that automatically resizes the figure after a tab change. Not a nice way but up to now it was a sufficient workaround. However, this option does not work an my MAC computer, as Matlab for MAC (R2013a) crashes non-deterministically when resizing a figure (I had similar issues with closing figures on R2012b on MAC).

Here is a little bit of code to reprocude the problem (works for me on MAC R2012b, MAC R2013a and Linux R2012):

set(0,'DefaultFigureRenderer','OpenGL');
mainGrid = uiextras.Grid( 'Parent', figure('Renderer', 'OpenGL'));
tabPanel = uiextras.TabPanel( 'Parent', mainGrid, 'Padding', 5);

% first tab
firstHBox = uiextras.HBox( 'Parent', tabPanel);
firstVBox = uiextras.VBox('Parent', firstHBox);
uicontrol('style', 'pushbutton', 'String', 'b1', 'parent', firstVBox);
axes('parent', firstVBox);
hold on;
plot(1:100);
text(10,10, 'text of first tab');
drawnow;

set(firstVBox, 'Sizes', [-1 -4]);

% second tab
secondHBox = uiextras.HBox( 'Parent', tabPanel, ...
'Padding', 5);
secondVBox = uiextras.VBox('Parent', secondHBox);
axes('parent', secondVBox);
hold on;
plot(100:-1:1);
text(50,50, 'text of second tab');
drawnow;
uicontrol('style', 'pushbutton', 'String', 'b2', 'parent', secondVBox);

set(secondVBox, 'Sizes', [-4 -1]);

Can you reproduce this problem http://img41.imageshack.us/img41/9826/selection006a.png ? Are there any alternative workarounds rather than resizing the figure?

09 Oct 2012 Mesh voxelisation Voxelise a triangular-polygon mesh. Author: Adam A

Hi Adam,

I'd like to use your code for the creation of a volume from an isosurface defined by the vertices and the faces as used by patch. However, the VOXELISE method does not return the expected results. I have created a simple example in order to reproduce the problem:
http://pastebin.com/PkWRuyyZ

Am I doing something wrong or is this a bug in the code?

Thanks,
Eff

09 Jul 2012 GUI Layout Toolbox Layout management objects for MATLAB GUIs Author: Ben Tordoff

I believe I have found out how to reproduce the problem. If I use 'painters' (default) as figure renderer the problem does not occur. However, when using opengl rendering the above mentionend problem happens.

To reproduce, execute set(0,'DefaultFigureRenderer','OpenGL') before running my example code (text() makes no difference)

Unfortunately, 'painters' is no option for me as I am doing more advanced 3d rendering.

09 Jul 2012 GUI Layout Toolbox Layout management objects for MATLAB GUIs Author: Ben Tordoff

Hi Ben,
I have messed a bit with drawnow. The simple example I have given is fine by using drawnow. However, if you additionally use the text function in the plot it is not working correctly. Maybe you can reproduce the issue on your system:

mainGrid = uiextras.Grid( 'Parent', figure);
tabPanel = uiextras.TabPanel( 'Parent', mainGrid, 'Padding', 5);

% first tab
firstHBox = uiextras.HBox( 'Parent', tabPanel);
firstVBox = uiextras.VBox('Parent', firstHBox);
uicontrol('style', 'pushbutton', 'String', 'b1', 'parent', firstVBox);
axes('parent', firstVBox);
hold on;
plot(1:100);
text(10,10, 'text of first tab');
drawnow;

set(firstVBox, 'Sizes', [-1 -4]);

% second tab
secondHBox = uiextras.HBox( 'Parent', tabPanel, ...
'Padding', 5);
secondVBox = uiextras.VBox('Parent', secondHBox);
axes('parent', secondVBox);
hold on;
plot(100:-1:1);
text(50,50, 'text of second tab');
drawnow;
uicontrol('style', 'pushbutton', 'String', 'b2', 'parent', secondVBox);

set(secondVBox, 'Sizes', [-4 -1]);

With using drawnow, I don't have any plot in my first tab. When drawnow is used, the effect is the same as in the screenshot above (additionally the text of tab 2 is schon in tab 1).

Thanks a lot!

06 Jul 2012 GUI Layout Toolbox Layout management objects for MATLAB GUIs Author: Ben Tordoff

An addition: I also had similar issues on my Mac in my previous work.

Contact us