matlab使用SizeChangedFcn不';t使用guide调用函数

matlab使用SizeChangedFcn不';t使用guide调用函数,matlab,function,callback,resize,matlab-guide,Matlab,Function,Callback,Resize,Matlab Guide,我想实现一些代码,以便当用户调整窗口大小时,我可以调用函数。我正在使用matlab 2018,他们建议使用SizeChangedFcn而不是ResizeFcn。我没有太多地处理回调,但是每次调整窗口大小时,我都很难让gui调用SizeChangedFcn。目前,根本不调用该函数 function varargout = firstgui(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ..

我想实现一些代码,以便当用户调整窗口大小时,我可以调用函数。我正在使用matlab 2018,他们建议使用SizeChangedFcn而不是ResizeFcn。我没有太多地处理回调,但是每次调整窗口大小时,我都很难让gui调用SizeChangedFcn。目前,根本不调用该函数

function varargout = firstgui(varargin)

gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ... 
                   'gui_OpeningFcn', @firstgui_OpeningFcn, ...
                   'gui_OutputFcn',  @firstgui_OutputFcn, ...
                   'SizeChangedFcn', @resizeui, ... % <-- added this line
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end


function resizeui(hObject,event)
        disp("Hi");

我在这里找到了解决方案:

通过选择工具>GUI选项,从指南布局编辑器访问该对话框

Other(使用SizeChangedFcn)-对UI进行编程,以便在用户调整图形窗口大小时以某种方式进行操作

在gui选项中选择“SizeChangedFcn”时,它为我创建了一个函数

function figure1_SizeChangedFcn(hObject, eventdata, handles)
% hObject    handle to figure1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
disp("Hi");

您需要将图形设置为所需的函数句柄。这里没有包含代码的这一部分,所以我假设这就是问题所在(例如,在
gui\u mainfcn
的某个地方)。您好,gnovice,我对matlab还是有点新手。谢谢你的回复。我确实在gui_state结构中放置了“'SizeChangedFcn',@resizeui,…”来调用“resizeui”函数,然后有一个station保持gui_mainfcn(gui_state,varargin{:});这就是你的意思吗?如果没有,请提供更具体的代码示例,说明还需要包括哪些内容?您是否使用指南来完成此操作?gui\u mainfcn中的实际代码是什么?是的,很好,我正在使用指南。我正在工作的程序已经有一些严重依赖它,所以我不能改变这一点。下面是其中的内容:函数varargout=gui\u mainfcn(gui\u State,varargin)%gui\u mainfcn支持创建和回调调度指南gui的函数GUI_MAINFCN是从GUIDE生成的MATLAB代码文件内部调用的,用于处理%GUI创建、布局和回调调度我想我帮不了什么忙。我不使用GUIDE,这似乎是一个与GUIDE如何管理事物相关的问题,我从来都不热衷于此。如果您自己构建这个GUI,那么当您创建图形时,您将设置figure属性。例如:
hFigure=figure('SizeChangedFcn',@resizeui,…)在指南生成的代码中的某个点上,我认为它必须做同样的事情(或者应该做,但在您的情况下不是这样)。
function figure1_SizeChangedFcn(hObject, eventdata, handles)
% hObject    handle to figure1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
disp("Hi");