Я пытался собрать графический интерфейс в MATLAB и столкнулся с большими трудностями. Вот небольшая предыстория моей программы: я хочу создать мастер, который будет пошагово выполнять пользователям процесс анализа изображений. Мастер будет сигнализировать пользователям об их вводе, а затем выполнять действие обработки изображения после нажатия кнопки с надписью «Далее» и так далее. Прочитав справку по MATLAB, я понял, что есть два подхода к созданию графического интерфейса: 1. написать графический интерфейс с помощью строк кода. 2. используйте РУКОВОДСТВО.
Я полагал, что у GUIDE будет самая пологая кривая обучения. Сначала процесс был прямолинеен. Я мог перетаскивать кнопки и текстовые поля и легко упорядочивать их. Мой план состоял в том, чтобы расположить ряд панелей с кнопками, текстом и т. д., которые последовательно становились бы видимыми при нажатии кнопки «Далее». И тут я впал в ступор.
Как только я сохраняю панель с помощью GUIDE, MATLAB создает файл .m и файл .fig. Читая файл .m, я вижу, что у меня осталось место для написания кода для обратных вызовов, но не более того. Файл .fig является двоичным, и поэтому я не осмеливаюсь его редактировать. Мне осталось задаться вопросом, как я могу управлять объектами, например. Как настроить видимость панели? Кроме того, мне пришлось создавать каждую панель мастера отдельно. Я надеялся, что смогу вручную объединить файлы .m в файл-оболочку wizard.m, но я не думаю, что это правильный подход (по крайней мере, для меня, потому что я не понимаю, как это сделать).
Вместо использования GUIDE я видел примеры, когда графический интерфейс создается с помощью функции «uicontrol». Этот подход кажется мне утомительным, потому что мне пришлось бы вручную кодировать положение, размер и значения по умолчанию для каждой кнопки. Возможно, это лучший подход, но он пугает меня.
В результате я недоволен MATLAB из-за его, казалось бы, неуклюжих инструментов графического интерфейса, и я недоволен собой из-за того, что мне не хватает навыков для преодоления этого препятствия.
Я видел несколько причудливых графических интерфейсов, созданных в MATLAB, и, попробовав это сам, и потерпев неудачу, я сбит с толку их существованием. Либо тот, кто их сделал, был исключительным пользователем MATLAB (я не являюсь), либо я упускаю что-то очевидное, и мне не помешала бы помощь. Теперь я задаюсь вопросом, стоит ли графический интерфейс затраченных усилий. Я не вижу себя в изучении чего-то вроде QT из-за дополнительной проблемы встраивания кода MATLAB в другие языки, такие как python.
У кого-нибудь есть совет на эту тему? Может ли кто-нибудь указать, где я ошибаюсь или почему у меня такие трудности?
uicontrol()
. Я обращаюсь к свойствам GUIDE, чтобы выяснить, как расположить материал. До сих пор это работало хорошо для меня, хотя это довольно утомительно. - person Dang Khoa   schedule 09.10.2011