Opposite of drawnow - prevent changes to a listbox

조회 수: 11 (최근 30일)
Matthew Murphy
Matthew Murphy 2017년 2월 8일
댓글: Matthew Murphy 2017년 2월 14일
I am using GUIDE to create plots of experimental data. In my figure, I have menus in which I store the input data categories and output categories of functions that I run on that data.
As I operate on those plots, the need arises to change the contents of those menus, operate on the data, then change the menus back to a presentable format.
In essence, I am trying to prevent those menus from being visibly updated, while still changing the contents so I can use them to do what I need to do. Since drawnow forces a graphical update, I was wondering if there was an opposite equivalent of that call.
Any comments and suggestions are welcome.

채택된 답변

Walter Roberson
Walter Roberson 2017년 2월 10일
About the only equivalent is to set the visibility of the items to be off. The items disappear from view, but any internal changes do not result in visible changes until the visibility is set back on again.
  댓글 수: 5
Walter Roberson
Walter Roberson 2017년 2월 13일
Even in R2010b, using set() should never trigger immediate graphics updates except perhaps setting figures visible -- with the exception that if you are at the command line (especially the debugger) then the graphics is updated before the prompt is given.
Matthew Murphy
Matthew Murphy 2017년 2월 13일
Ah. Did not know that.
Also accepted your answer due to the help and advice you have given with regards to this question.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Bill York
Bill York 2017년 2월 10일
It sounds like you want to update the graphics without updating the menus. There is no way in MATLAB to do this.
Could you tell me more about how you are using the menus? There may be another way to achieve your goal that does not collide with updating the graphics.
  댓글 수: 8
Walter Roberson
Walter Roberson 2017년 2월 14일
GUIDE uses guidata() relative to the object whose callback is being invoked, which refers back to the figure enclosing that object. That has some advantages, but if you are working in the mode of having a "main" GUI figure and other figures that are under the control of the main figure, then it is more common than not to want the controls in the secondary figures to be able to refer to data in the main figure.
I do not know if there are good solutions to the complex interactions. Perhaps if you could somehow designate a particular data pool to be used by the figure and if the data pool could be shared between multiple figures.
Matthew Murphy
Matthew Murphy 2017년 2월 14일
I just use the handles structure for that.
GUIDE automatically generates it to store all tags for the figure objects when it initializes the GUI and maintains it as long as the figure's open. For my main figure, I initialize data storage fields in the opening function. For "sub"-figures, I pass through the main figure's handles structure as an argument to its opening function and access the data that way.
That way I can call guidata() on my handles structure as it is tied directly to each figure.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Specifying Target for Graphics Output에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by