MATLAB台大郭彦甫老师课程笔记:第六课:图形界面GUI程序设计

本文介绍了如何使用MATLAB的Guide工具创建GUI,通过Slider控制实时更新文本并实现图形绘制。重点讲解了如何在回调函数中响应滑块变化,以及如何打包成exe文件的问题和解决尝试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GUI:Graphical user interface

GUI程式撰写 入门:

  1. 打开matlab,在command window输入guide,进入"Guide Quick Start"窗口
  2. 在“Create New GUI”下,选择“Blank GUI(Default)”,点击OK,会弹出一个untitled.fig窗口
    在这里插入图片描述
  3. 此时就可以开始在这个界面上设置自己的GUI界面了。
    在这里插入图片描述
    例:
    在这里插入图片描述插入在opening_fun 处指定位置之后,运行,发现程序在之前的界面绘出了相应图形。
    在这里插入图片描述需要按下某个按钮才画图,则把上述代码贴到对应按钮function的代码块中:
    在这里插入图片描述
    当界面中有多个axies时,需要指定画图时,在surf前面加上对应的指令:(还是在callback function里添代码)
    在这里插入图片描述
    将滑块的位置数值实时显示到上方的静态文本中:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
% 改动1:
function untitled_OpeningFcn(hObject, eventdata, handles, varargin)
a = int16(get(handles.slider1, 'Value'));
b = int16(get(handles.slider2, 'Value'));
set(handles.text2, 'String', ['A:',num2str(a)]);
set(handles.text3, 'String', ['B:',num2str(b)]);
set(handles.text4, 'String', ['A+B:',num2str(a+b)]);

% 改动2:
function slider1_Callback(hObject, eventdata, handles)
a = int16(get(handles.slider1, 'Value'));
b = int16(get(handles.slider2, 'Value'));
set(handles.text2, 'String', ['A:',num2str(a)]);
set(handles.text4, 'String', ['A+B:',num2str(a+b)]);

% 改动3:
function slider2_Callback(hObject, eventdata, handles)
a = int16(get(handles.slider1, 'Value'));
b = int16(get(handles.slider2, 'Value'));
set(handles.text3, 'String', ['B:',num2str(b)]);
set(handles.text4, 'String', ['A+B:',num2str(a+b)]);

最终效果(可惜没有gif):
在这里插入图片描述
在这里插入图片描述注意:guidata那一行指令固定。

将文件另存为exe文件步骤:

  1. 在command window中输入:deploytool,进入如下界面:
    在这里插入图片描述
  2. 默认选择第一个后进入如下界面:
    在这里插入图片描述按红色框“Add main file”旁边的那个加号,选择 main file 后,matlab会自动选择出相对应的 fig 文件。找到了之后就按亮起的绿色勾勾“Package”。
    在这里插入图片描述打包完成:
    在这里插入图片描述
    遗留问题:打包完成后即使在我的电脑上也不能正常运行,总是提示:
    在这里插入图片描述不知道是什么原因,上网查了,好像也有人遇到过这种问题,提出的解决方案也试过,但是并没有得到合适我的解答(包括把对应的dll件拷到目录下、以admin身份运行等,但是并没有什么用。。)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值