随笔 - 1762  文章 - 0  评论 - 109  阅读 - 431万

MATLAB GUI手记——用户菜单以及回调函数的语法规则

http://bilibili.com/video/BV1Ya4y1t7rZ?from=search&seid=18404440388539513689

学习要点:

  • 定义回调函数的语法规则。

创建图形用户界面有4种方式:

  1. 纯m语言创建。
  2. 命令方式(在命令行窗口敲入命令:figure);
  3. 通过guide命令创建(在命令行窗口敲入命令:guide);
  4. 通过appdesigner命令创建(在命令行窗口敲入命令:appdesigner);

其中,方法4是比较新的方法。目前matlab停止了guide的更新,以后会推广方法4(2016及以上版本具备).

 下面用纯m语言创建图形用户界面:

代码:

%%菜单设计
h_figure=figure;
set(h_figure,'menubar','figure');

运行结果:

 

 

 代码:

%%菜单设计
h_figure=figure;
set(h_figure,'menubar','none');

运行结果:

 

 带GUI的代码,也是可以调试运行的,在想调试的地方设置断点即可。

 

 

 

注解:

  1. 参数obj是二级菜单blue的句柄。

gui_lianxi.m

复制代码
%----------------------------%
%matlab GUI设计的练习代码
%2021/2/12
%----------------------------%

%%菜单设计
h_figure=figure;
%set(h_figure,'menubar','figure');
set(h_figure,'menubar','none');
text_y='这是黄色';
text_w='这是白色';
%%用户菜单的建立
h_menu=uimenu(h_figure,'label','&color');
h_submenu1=uimenu(h_menu,'label','&green','Callback','set(gcf,''color'',''green'')'); %这个是直接把回调函数的内容写在这里,适合只有1行代码的回调函数,最不推荐这种回调函数的写法
h_submenu2=uimenu(h_menu,'label','&red');
h_submenu3=uimenu(h_menu,'label','&blue');
h_submenu4=uimenu(h_menu,'label','&yellow');
h_submenu5=uimenu(h_menu,'label','&white');
set(h_submenu2,'Callback','set_color');  % 'Callback'代表回调函数,set_color就是要定义的回调函数(set_color.m),
set(h_submenu3,'Callback',@set_color_1); % 这种回调函数set_color_1.m需要有参数obj,event
set(h_submenu4,'Callback',{@set_color_2,text_y});% 这种回调函数set_color_2.m 需要向回调函数传入一些参数
set(h_submenu5,'Callback',{'set_color_3',text_w});
复制代码

 

set(h_submenu4,'Callback',{@set_color_2,text_y});% 这种回调函数set_color_2.m 需要向回调函数传入一些参数

注解:

这样的回调函数最常用,传递一个函数,函数中传入一些参数。

 

set_color.m文件:

function set_color()
    set(gcf,'color','red');
end

 set_color_1.m文件:

function set_color(obj,event)  
    set(gcf,'color','blue');   
end

 set_color_2.m文件:

function set_color(~,~,text_y)  
    set(gcf,'color','yellow');   
    msgbox(text_y);
end

 set_color_3.m文件:

function set_color(~,~,text_w)  
    set(gcf,'color','white');   
    msgbox(text_w);
end

 

posted on   一杯明月  阅读(1349)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
历史上的今天:
2020-02-12 7. 三大函数:拷贝构造函数,拷贝赋值函数, 析构函数
2020-02-12 6. 复习complex类的实现过程
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示