查看: 926|回复: 2|关注: 0

[未答复] 求助:关于GUI编程中自定义函数调用axes控件问题

[复制链接]

新手

10 麦片

财富积分


050


1

主题

3

帖子

0

最佳答案
发表于 2018-12-7 15:59:11 | 显示全部楼层 |阅读模式
问题描述:需要在自定义函数里调用axes控件去修改axes中部分属性,但发现修改无效,经查找发现寻找不到axes控件的Tag值,但在axes中使用guidata函数声明tag后,图片显示出现问题,求各位大神解决。
注:axes控件中tag值已设置。初始化程序后有图像输出。
付程序代码:
  1. [/size][/backcolor][/color][color=rgb(4, 51, 255)][font=Courier][size=10px]function[/size][/font][/color][font=Courier][size=10px] varargout = text(varargin)[/size][/font]
  2. [align=left][font=Courier][size=10px]gui_Singleton = 1;[/size][/font][/align][align=left][font=Courier][size=10px]gui_State = struct('gui_Name',       mfilename, ...[/size][/font][/align][align=left][font=Courier][size=10px]                   'gui_Singleton',  gui_Singleton, ...[/size][/font][/align][align=left][font=Courier][size=10px]                   'gui_OpeningFcn', @text_OpeningFcn, ...[/size][/font][/align][align=left][font=Courier][size=10px]                   'gui_OutputFcn',  @text_OutputFcn, ...[/size][/font][/align][align=left][font=Courier][size=10px]                   'gui_LayoutFcn',  [] , ...[/size][/font][/align][align=left][font=Courier][size=10px]                   'gui_Callback',   []);[/size][/font][/align][align=left][font=Courier][size=10px]if nargin && ischar(varargin{1})[/size][/font][/align][align=left][font=Courier][size=10px]    gui_State.gui_Callback = str2func(varargin{1});[/size][/font][/align][align=left][color=rgb(4, 51, 255)][font=Courier][size=10px]end[/size][/font][/color][/align]
  3. [align=left][font=Courier][size=10px]if nargout[/size][/font][/align][align=left][font=Courier][size=10px]    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});[/size][/font][/align][align=left][color=rgb(4, 51, 255)][font=Courier][size=10px]else[/size][/font][/color][/align][align=left][font=Courier][size=10px]    gui_mainfcn(gui_State, varargin{:});[/size][/font][/align][align=left][color=rgb(4, 51, 255)][font=Courier][size=10px]end[/size][/font][/color][/align]

  4. [align=left][font=Courier][size=10px]function text_OpeningFcn(hObject, eventdata, handles, varargin)[/size][/font][/align][align=left][font=Courier][size=10px]handles.output = hObject;[/size][/font][/align][align=left][font=Courier][size=10px]guidata(hObject, handles);[/size][/font][/align][align=left][font=Courier][size=10px]% ---初始axes---[/size][/font][/align][align=left][font=Courier][size=10px]if strcmp(get(hObject,'Visible'),'off')[/size][/font][/align][align=left][font=Courier][size=10px]    axes(handles.Axes_Fig);[/size][/font][/align][align=left][font=Courier][size=10px]    surf(peaks);[/size][/font][/align][align=left][color=rgb(4, 51, 255)][font=Courier][size=10px]end[/size][/font][/color][/align]

  5. [align=left][font=Courier][size=10px]function varargout = text_OutputFcn(hObject, eventdata, handles) [/size][/font][/align][align=left][font=Courier][size=10px]varargout{1} = handles.output;[/size][/font][/align]

  6. [align=left][font=Courier][size=10px]function pushbutton1_Callback(hObject, eventdata, handles)[/size][/font][/align][align=left][font=Courier][size=10px]teare;[/size][/font][/align]

  7. [align=left][color=rgb(4, 51, 255)][font=Courier][size=10px]function teare [/size][/font][/color][/align][align=left][font=Courier][size=10px]handles = guihandles(gcf);[/size][/font][/align][align=left][font=Courier][size=10px]Axes_Fig.XLim = [0.5 250.5];[/size][/font][/align][align=left][font=Courier][size=10px]Axes_Fig.YLim = [0.5 150.5];[/size][/font][/align]
  8. [color=rgb(153, 153, 153)][backcolor=rgb(242, 242, 242)][size=12px]   
复制代码



界面


新手

10 麦片

财富积分


050


1

主题

3

帖子

0

最佳答案
 楼主| 发表于 2018-12-7 16:00:30 | 显示全部楼层
问题描述:需要在自定义函数里调用axes控件去修改axes中部分属性,但发现修改无效,经查找发现寻找不到axes控件的Tag值,但在axes中使用guidata函数声明tag后,图片显示出现问题,求各位大神解决。
注:axes控件中tag值已设置。初始化程序后有图像输出。
付程序代码:
function varargout = text(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @text_OpeningFcn, ...
                   'gui_OutputFcn',  @text_OutputFcn, ...
                   '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 text_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
% ---初始axes---
if strcmp(get(hObject,'Visible'),'off')
    axes(handles.Axes_Fig);
    surf(peaks);
end


function varargout = text_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;


function pushbutton1_Callback(hObject, eventdata, handles)
teare;


function teare
handles = guihandles(gcf);
Axes_Fig.XLim = [0.5 250.5];
Axes_Fig.YLim = [0.5 150.5];

新手

10 麦片

财富积分


050


1

主题

3

帖子

0

最佳答案
 楼主| 发表于 2018-12-9 13:04:19 | 显示全部楼层
顶一下 看看有没有大神回答
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表