Matlab ResizeFcn callback
이전 댓글 표시
I am worried about the look and feel of my GUI designed with Matlab. In concrete, I do not like how the figure window resizing is achieved. I have an uitabgroup (tabpanel) inside which there are three panels with border etchedin. Each time the figure is resized, it appears flickering between both positions of the panels. I hate this optical effect. So, I decided to build my own resizefcn callback to get being pleased. However, I realize Matlab first resizes the figure window and then it runs the commands inside the resizefcn callback. I would like to know if there is some solution that lets me to change this behaviour.
댓글 수: 3
Jiro Doke
2012년 2월 26일
Are you saying that you want the resizefcn to be called before the figure size changes? If so, I'm not sure you can do that. When you click on an edge of a figure and move, the OS is going to change the size of the figure. Then after that, the resizefcn in MATLAB will be called. I don't think you can interject the resizefcn before the OS actually changes the figure.
Julián Francisco
2012년 2월 27일
Walter Roberson
2012년 2월 27일
The resize mechanism is ugly. But until such time as MATLAB comes complete with built-in layout functions for the elements ("put this part down here if there is room"), I don't know that anything can be done.
채택된 답변
추가 답변 (2개)
Walter Roberson
2012년 2월 27일
2 개 추천
You might be able to reduce the flash grunge by setting the figure visibility to 'off' during the resize process, and then to 'on' again when the resize is finished.
Malcolm Lidierth
2012년 2월 27일
1 개 추천
If you a using the mouse to resize, the figure will always be updated multiple times because it has multiple sizes between the start and end of the mouse drag. There are any number of solutions. See http://undocumentedmatlab.com/blog/controlling-callback-re-entrancy/
카테고리
도움말 센터 및 File Exchange에서 Interactive Control and Callbacks에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!