Я создал приложение в конструкторе приложений Matlabs. Приложение включает элемент UIAxes с некоторыми точками данных.
При запуске приложения через обычный Matlab он отлично работает. Я могу выбирать точки и получать координаты с помощью dcm_obj = datacursormode(app.UIFigure)
, а затем click_coords1 = getCursorInfo(dcm_obj);
.
После компиляции приложения с помощью Matlab Compiler (Поделиться - ›автономное настольное приложение -› включить среду выполнения в пакет) и запуска скомпилированной версии, точки данных больше не могут быть выбраны. Когда я нажимаю на точку данных на рисунке, просто ничего не происходит. Точка данных не выбрана, и всплывающая подсказка не отображается. Код, который обычно возвращает координаты, теперь ничего не возвращает. Я также заметил, что сама фигура выглядит менее красивой (круги на диаграмме рассеяния кажутся квадратными).
Другие функции, похоже, работают: раскрывающиеся меню и кнопки, которые извлекают и рисуют данные на рисунке, рисование новых данных на рисунке также не проблема. Я также могу панорамировать цифру (хотя по какой-то причине это очень медленно в Ubuntu 20, но не в CentOS 8).
Я запускаю приложение, используя предоставленный сценарий bash: ./run_myapp.sh [path to matlab]
Нет никакой разницы в запуске приложения от имени локального пользователя или root. Также нет разницы при ссылке на среду выполнения Matlab или обычный Matlab.
Подробности:
Версия среды выполнения Matlab: V98
Обычная версия Matlab: R2020a
Операционная система: Ubuntu 20.04 / CentOS 8
Проблема может быть воспроизведена с использованием примера приложения Отображение пациентов, которое предоставляет конструктор приложений Matlab. Скомпилируйте его как автономное настольное приложение с включенной средой выполнения. Установите его и запустите с помощью предоставленного сценария bash. Нажатие на точки данных невозможно (но возможно в конструкторе приложений).