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