MATLAB 2014b getframe 导致 UI 到 'blank'

MATLAB 2014b getframe causes UI to 'blank'

我目前正在开发一个复杂的 MATLAB 应用程序。我正在尝试使用 getframe 函数保存图形(在其 UI 中创建)。这工作正常,并按预期保存图形。但是,每次使用后UI 'blanks'。 window 仍然存在,但变成了一个统一的白色矩形。将鼠标悬停在 UI 中的特征上会使它们再次出现(就像 war 的迷雾)。添加 refresh 语句没有帮助。

为什么会这样?我如何让它停止?

令人恼火的是,这在 2018a 中没有发生,但代码在 2014b 中,这是有问题的(我在对我的酷修复感到满意后发现的东西:( ))。

不幸的是,发布代码是不可行的,因为我没有共享它的权限。

好的,经过大量研究,我一直无法找到 直接 解决方案。但是我已经实现了一个间接的解决方案。

refresh

没有用,所以我实施了手动强制重绘。 IE。我在 getframe 之后将屏幕抖动了 1 个像素,这会重绘 window.

figpos = fig.Position;    
jitter = figpos;
jitter(3) = jitter(3) + 1;
jitter(4) = jitter(4) + 1;
set(fig,'Position',jitter);
set(fig,'Position',figpos);

可能没有必要扩展和收缩 window 的宽度和高度,但它做得很好。