MATLAB 2014b getframe приводит к тому, что пользовательский интерфейс становится пустым - PullRequest
0 голосов
/ 19 сентября 2018

В настоящее время я разрабатываю сложное приложение MATLAB.Я пытаюсь сохранить цифры (созданные в его пользовательском интерфейсе) с помощью функции getframe.Это прекрасно работает и сохраняет фигуру, как задумано.Тем не менее, пользовательский интерфейс «пропускает» после каждого использования.Окно остается, но становится равномерным белым прямоугольником.Помещение над функциями в пользовательском интерфейсе заставляет их появляться снова (как туман войны).Добавление оператора refresh не помогло.

Почему это происходит?Как мне остановить его?

Раздражительно, что это не происходит в 2018a, но код написан в 2014b, что проблематично (что я обнаружил, обрадовавшись моему классному исправлению :().

К сожалению, публикация кода невозможна, потому что у меня нет разрешения на его распространение.

1 Ответ

0 голосов
/ 20 сентября 2018

ОК, после долгих исследований мне не удалось найти решение direct .Но я реализовал косвенное решение.

refresh

не работало, поэтому я внедрил ручную принудительную перерисовку.Т.е. я дрожу экран после getframe на 1 пиксель, что перерисовывает окно.

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

Вероятно, нет необходимости расширять и сжимать ширину и высоту окна, но это прекрасно работает.

...