Вызов функции графического интерфейса пользователя из другого графического интерфейса пользователя

У меня есть GUI1, который открывает GUI2. Я хочу, чтобы GUI2 выполнял функцию из GUI1.

Этот ссылка показывает, как выполнить обратный вызов, но я хочу выполнить функцию. Спасибо

Если ваша функция должна вызываться в нескольких сценариях, вы можете сохранить функцию в отдельном файле.

Anthony 31.10.2018 14:46
1
1
48
1

Ответы 1

Вам нужно создать дескриптор этой функции и сохранить его где-нибудь, где его можно будет оценить.

например в функции открытия GUI1 (где hObject - это объект / дескриптор рисунка GUI1):

func.myFun1=@myFun1;
func.myFun2=@myFun2;
setappdata(hObject,'fun_handles',func);

затем в GUI2 вы можете восстановить дескрипторы с помощью func=getappdata(GUI1_figure,'fun_handles');, где GUI1_figure - это объект-фигура GUI1. Объект-фигура может быть либо сохранен при добавлении графического интерфейса пользователя (например, если GUI2 всегда создается из GUI1, передать объект в качестве аргумента и сохранить его где-нибудь), либо найти что-то вроде findobj(0,'-depth',1,'Tag','tag_of_GUI1_figure')

Другие вопросы по теме