Я не программист GUI, как станет очевидным. Во всяком случае, я пытаюсь разобрать графический интерфейс. Я использую программу под названием art (найдено here, если это полезно), которая генерирует фигуры и переменные, которые я хотел бы сохранить. Вы можете вызвать искусство из пакетного скрипта и заставить его прочитать файл конфигурации для своих входов, что я и делаю, но вы должны вручную генерировать и сохранять большую часть своего вывода (переменных и цифр) в графическом интерфейсе. Я бы хотел автоматизировать этот процесс, но я действительно борется.В Matlab, как вызвать функции обратного вызова GUI без GUI?
Я думаю, что суть моей проблемы будет решена, если я знаю, как заставить функции обратного вызова вызываться. Например, в статье showCorr_Callback(hObject, eventdata, handles)
есть функция, которая управляется переключателем в графическом интерфейсе. Он имеет условие проверки на выполнение:
if (get(handles.showCorr,'Value') == get(handles.showCorr,'Max'))
Я попытался вставить
mx = get(handles.showCorr,'Max'))
setappdata(handles.showCorr,'Value', mx)
в функцию Я знаю, выполняется, функция открытия, function art_OpeningFcn(hObject, eventdata, handles, varargin)
. Это, похоже, не имеет никакого эффекта. Если бы я знал, как выполнить функции обратного вызова, возможно, я мог бы вставить код, который сохраняет фигуру в функциях. Где-то в сценариях графического интерфейса Matlab должно быть что-то, что постоянно тестируется на изменение состояния в графическом интерфейсе. Где это? Как я могу обмануть его, думая, что нажата кнопка радиосвязи?
Спасибо за вашу помощь, и, пожалуйста, дайте мне знать, если мне нужно предоставить дополнительную информацию.
Большое спасибо за помощь. Я поддерживаю ваш ответ, но не принимаю его, потому что это был полезный, но частичный ответ. Исключение составляет ваша линия hgfeval. Работала с помощью 'set (handles.showCorr, 'Value', get (handles.showCorr, 'Max'))', а затем явно вызывала функцию с помощью showCorr_Callback (hObject, eventdata, handle); '. В ретроспективе кажется глупым, что раньше я этого не делал, но я был смущен тем, какие аргументы он принял. Только многие из насмешливо отлаживателя показали мне, что необходимые ему аргументы имели то же имя, что и в определении функции. – Katie
@ Кати, в чем была ошибка? Также вы можете сделать это так, как вы это сделали, и я могу добавить его в ответ для полноты. – Suever
@ Katie Я считаю, что обновил свой ответ, так что теперь * оба * должны работать. Вы можете проверить первый для меня? – Suever