В R2019b MathWorks® объявил, что GUIDE, исходная среда перетаскивания для создания приложений в MATLAB®, будет удален в будущем релизе. После того, как GUIDE удален, существующие приложения GUIDE (графический интерфейсы пользователя) продолжат запускаться в MATLAB, и программные файлы приложения все еще будут доступны для редактирования, если необходимо изменить поведение приложения.
Чтобы продолжить редактировать макет существующего приложения GUIDE и справки обеспечивают ее совместимость с будущими релизами MATLAB, необходимо использовать одну из предложенных стратегий миграции, перечисленных в этой таблице.
Потребности разработки приложений | Стратегия миграции | Как мигрировать |
---|---|---|
Случайное редактирование | Экспортируйте свое приложение в один файл MATLAB, чтобы управлять вашим размещением приложения и кодом с помощью функций MATLAB. | Откройте приложение в GUIDE и выберите File> Export to MATLAB-file. |
Продолжающаяся разработка | Переместите свое приложение на App Designer. | Используйте
GUIDE к инструменту миграции App Designer для MATLAB
на mathworks.com . |
Экспорт приложения GUIDE преобразует его в программное приложение путем воссоздания FIG GUIDE и программных файлов вместе в одном файле программы MATLAB.
Используйте эту опцию, если вы планируете к:
Внесите незначительные изменения в размещение или поведение вашего приложения.
Разработайте свое приложение программно, не в интерактивном режиме.
Чтобы экспортировать ваше приложение, откройте его в GUIDE и выберите File> Export to MATLAB-file. MATLAB создает программный файл с _export
добавленный к имени файла. Новый файл содержит ваш исходный код коллбэка плюс автоматически сгенерированные функции, которые обрабатывают создание и размещение приложения. Пример этих добавленных функций показывают здесь.
Миграция вашего приложения GUIDE к App Designer позволяет вам продолжать разрабатывать размещение своего приложения в интерактивном режиме. Это также позволяет вам использовать в своих интересах функции как расширенный набор компонента пользовательского интерфейса и опции автообратного течения, чтобы сделать ваше приложение быстро реагирующим к изменениям в размере экрана. И это дает вам способность создать и совместно использовать ваше приложение как веб-приложение (требует MATLAB Compiler™).
GUIDE к Инструменту Миграции App Designer для MATLAB был сначала выпущен в R2018a, чтобы упростить процесс преобразования. Это доступно через Add-On Explorer в рабочем столе MATLAB или посредством Обмена файлами на MATLAB Central™.
Начиная в R2020a, инструмент миграции имеет существенные улучшения, которые решительно уменьшают время и количество ручных обновлений кода, требуемых получить ваше приложение, запускающееся в App Designer. Для получения дополнительной информации об этих улучшениях, см. Код Коллбэка.
Используйте эту опцию в приложениях GUIDE, которые требуют значительной или продолжающейся разработки комплекта.
Существует несколько способов переместить ваше приложение, в зависимости от которой среды вы начинаете в.
От диалогового окна Быстрого запуска GUIDE кликните по вкладке Open Existing GUI. Затем выберите файл FIG и нажмите Migrate to App Designer. Это открывает GUIDE для Инструмента Миграции App Designer, если это уже установлено. Если это уже не установлено, диалоговое окно предлагает вам загружать и устанавливать его сначала. В инструменте миграции проверьте, что правильный файл FIG выбран для миграции, и затем нажмите Migrate. Приложение мигрирует и автоматически открывается в App Designer.
Из App Designer перейдите к вкладке Designer. В разделе File нажмите Open> Open GUIDE to App Designer Migration Tool.
Инструмент миграции помогает вам преобразовать свои приложения путем чтения в файле FIG GUIDE и автоматически генерации App Designer эквивалентные компоненты и размещение в файле MLAPP. Ваш код коллбэка GUIDE и другие пользовательские функции копируются в файл MLAPP. Это полуавтоматическое преобразование кода также создает отчет миграции, который предлагает действия для любых ручных обновлений кода, которые необходимы. Некоторые функции инструмента описаны в этой таблице.
Функции инструмента миграции | Описание | |
---|---|---|
Преобразование файла | Читайте в файле FIG GUIDE и сопоставленном коде и затем сгенерируйте файл MLAPP App Designer. Имя файла App Designer принимает форму guideFileName _App.mlapp . | |
Компоненты и размещение приложения | Преобразуйте компоненты и настройки свойства к эквивалентам App Designer, и сохраните размещение приложения. | |
Код коллбэка | Сохраните копию кода коллбэка GUIDE и пользовательских функций в файле MLAPP. | |
Пример | Продвиньтесь через изменения, внесенные в ваше перемещенное приложение. | |
Отчет миграции | Обобщите действия, успешно завершенные инструментом миграции. Перечислите любые ограничения или неподдерживаемую функциональность, характерную для вашего приложения, с предлагаемыми действиями при наличии. |
Для того, чтобы сделать ваш код коллбэка стиля GUIDE совместимым с компонентами пользовательского интерфейса App Designer в вашем приложении, инструмент миграции использует функцию под названием convertToGUIDECallbackArguments
. Эта функция преобразует аргументы коллбэка App Designer в аргументы коллбэка стиля GUIDE, которых требует ваш код. convertToGUIDECallbackArguments
функция добавляется к началу каждой перемещенной функции обратного вызова. Это берет аргументы app
коллбэка App Designer и
event
и возвращает аргументы hObject
коллбэка стиля GUIDEДанные о событиях
, и handles
. Например:
hObject
указатель объекта, коллбэк которого выполняется. Для компонентов из вашего приложения GUIDE, которые были UIControl
или ButtonGroup
объекты, hObject
указатель на UIControlPropertiesConverter
или ButtonGroupPropertiesConverter
объект. Эти объекты создаются, чтобы заставить ваш код стиля GUIDE работать в ваших функциях обратного вызова App Designer.
eventdata
обычно пусто, но может быть структура, содержащая определенную информацию о событии коллбэка.
handles
структура, которая содержит перемещенные дочерние компоненты фигуры пользовательского интерфейса, которые имеют 'Tag'
значение свойства установлено. Дочерние компоненты, которые были UIControl
объектами в вашем приложении GUIDE является UIControlPropertiesConverter
объекты в перемещенном приложении. Точно так же дочерний ButtonGroup
объектами является ButtonGroupPropertiesConverter
объекты в перемещенном приложении.
UIControlPropertiesConverter
и ButtonGroupPropertiesConverter
объекты действуют как адаптеры между кодом стиля GUIDE и компонентами App Designer и коллбэками. UIControlPropertiesConverter
объект создается для каждого компонента в вашем приложении GUIDE, которое было UIControl
объект. Эти объекты конвертера сопоставлены с компонентом пользовательского интерфейса App Designer в вашем перемещенном приложении. Объект конвертера имеет те же свойства и значения как исходный UIControl
из вашего приложения GUIDE, но это применяет их к своему связанному App Designer компонент пользовательского интерфейса.
Точно так же для ButtonGroup
объекты от GUIDE, ButtonGroupPropertiesConverter
объект создается в App Designer. Этот объект позволяет установить SelectedObject
свойство к UIControlPropertiesConverter
возразите так, чтобы группа кнопок SelectionChangedFcn
логика коллбэка будет функционировать.
Существуют некоторые обстоятельства, которые требуют, чтобы вы сделали дополнительные шаги прежде или после того, как вы перемещаете свое приложение. Эта таблица приводит общие сценарии и шаблоны кодирования, которые требуют дополнительных шагов или ручных обновлений кода. Это не предназначается, чтобы быть всесторонним списком.
Функция приложения GUIDE | Описание | Предлагаемые действия |
---|---|---|
Приложения мультиокна (то есть, два или больше приложения, которые осуществляют обмен данными), | Приложения мультиокна требуют, чтобы каждое приложение было перемещено отдельно. Перемещенные имена файла приложения добавлены с _App . Вызовы этих приложений из других приложений должны быть обновлены. | Переместите каждое приложение отдельно. В приложении вызова обновите имя приложения, которое называется к новому имени файла. |
Приложения Singleton и фигура выводятся | При определении приложения App Designer, когда не поддержан одиночный элемент. | Как обходное решение, после того, как вы перемещаете свое приложение, создают функцию в App Designer, который управляет одноэлементным поведением и возвращает указатель на uifigure . |
Переключатели и коллбэки переключателя | Инструмент миграции не перемещает переключатели, которые не порождаются к группе переключателей или функциям обратного вызова для отдельных переключателей. | Создайте группу кнопок в App Designer и добавьте переключатели в него. Чтобы выполнить поведение, когда выбор переключателя будет изменен, создайте SelectionChangedFcn функция обратного вызова для группы кнопок. Для получения дополнительной информации смотрите uiradiobutton и свойства ButtonGroup. |
Неподдерживаемые свойства и функции построения графика в UIAxes объекты | Инструмент миграции преобразует Для получения дополнительной информации смотрите Графику Отображения в App Designer. | Замените
|
clf gco getframe ginput gtext фильм , и uistack | Вызывание этих функций в App Designer не поддержано. | Определите, очень важна ли эта функциональность для вашего приложения перед миграцией. В App Designer нет никакого обходного решения. |
findobj findall , и gcbo | Используя | Ссылочные компоненты с помощью handles структура или обновление ваш код, чтобы использовать связанный компонент App Designer, свойства и значения. |
nargin и nargchk | Функции помощника перемещаются на методы приложения и имеют app как дополнительный входной параметр. Это может вызвать неправильный nargin или nargchk логика. | Инкрементные контрольные числа 1 . |
OutputFcn(varargout) | В App Designer нет никакой эквивалентной функциональности. Когда вы инстанцируете перемещенного, приложения App Designer, выход всегда является объектом приложения, не | Если ваш Если ваш function out = MyGUIDEApp(varargin) app = MyMigratedApp(varargin{:}); out = app.UIFigure; end |
Если ваше приложение GUIDE интегрирует сторонние компоненты с помощью функций как actxcontrol
, обратитесь к этой информации о версии для получения дополнительной информации об альтернативной функциональности, которую можно использовать вместо этого.
App Designer и GUIDE имеют различные структуры кода, синтаксисы коллбэка и методы для доступа к компонентам пользовательского интерфейса и обмена данными. Понимание этих различий полезно, если вы планируете добавить новые опции App Designer к своему перемещенному приложению или хотеть обновить его, чтобы использовать стиль кода App Designer и соглашения. Эта таблица суммирует некоторые из этих различий.
Различие | GUIDE | Дизайнер приложений | Больше информации |
---|---|---|---|
Используя фигуры и графику | GUIDE вызывает GUIDE вызывает Все функции графики MATLAB поддерживаются. Нет никакой потребности задать целевые оси. | App Designer вызывает App Designer вызывает Поддерживается большинство функций графики MATLAB. | Отобразите графику в App Designer |
Используя компоненты | GUIDE создает большинство компонентов с | App Designer создает каждый компонент пользовательского интерфейса со своей собственной специализированной функцией. Больше компонентов доступно, включая | Компоненты App Building |
Доступ к свойствам компонентов | GUIDE использует Например, | App Designer поддерживает Например, | Запись обратных вызовов в App Designer |
Код приложения управления | Код задан как основная функция, которая может вызвать локальные функции. Весь код доступен для редактирования. | Код задан как класс MATLAB. Только коллбэки, функции помощника и пользовательские свойства доступны для редактирования. | Код управления в представлении кода App Designer |
Запись коллбэков | Необходимыми входными параметрами коллбэка является Например, | Необходимыми входными параметрами коллбэка является Например, | Запись обратных вызовов в App Designer |
Обмен данными | Чтобы сохранить и осуществлять обмен данными между коллбэками и функциями, используйте Например, | Чтобы сохранить и осуществлять обмен данными между коллбэками и функциями, используйте пользовательские свойства создать переменные. | Осуществляйте обмен данными в рамках приложений App Designer |