Text and Line only shown in debug mode

1 Ansicht (letzte 30 Tage)
Luis Andres
Luis Andres am 3 Okt. 2011
Hi,
I am making a GUI. Inside it, I have placed an axes. I am writing a text label and a line, creating a text and a line objects. When I set a breakpoint in the text() or line() functions, the objects are correctly drawn in the axes, but not when I run the script. I am using Matlab R2011a.
Thanks, Luis

Antworten (2)

Grzegorz Knor
Grzegorz Knor am 3 Okt. 2011
Maybe add drawnow command after you draw the line, or try to use refresh function.

Luis Andres
Luis Andres am 4 Okt. 2011
Hi,
I have tried it, but without success. For instance, when I draw a line in an axes called "myAxes", I write:
ylim=get(handles.myAxes,'ylim');
a=50;
line([a;a],ylim,'linewidth',2,'color',[0,0,0]);
So, I don´t make any reference to handles.myAxes in the line. Should I make it?
  4 Kommentare
Jan
Jan am 5 Okt. 2011
Avoid to use "ylim" as name of a variable, because it is a built-in function. But this is not the cause of the problem.
The low-level function LINE needs the property name for the parent:
line('Parent', handles.myAxes, [a;a],ylim,'linewidth',2,'color',[0,0,0]);
You can obtain the handles of the line or text object and check it in non-debug mode:
H = line(... your calling sequenc...)
disp(get(H, 'Parent') == handles.myAxes)
Then you will find out, that the line is drawn to another AXES object. Therefore the specification of the Parent should solve the error.
Walter Roberson
Walter Roberson am 5 Okt. 2011
You will probably need to put the 'Parent' parameter _after_ the positional parameters, as in
line([a;a],ylim, 'Parent', handles.myAxes, 'linewidth',2, 'color',[0,0,0]);

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Graphics Object Programming finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by