MATLAB GUI常用函数使用

本文详细介绍了MATLAB GUI中常用的几个函数,包括uigetfile、uiputfile、uisetcolor、uisetfont、uiinputdlg、msgbox、questdlg及errordlg的使用方法与参数详解。

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

MATLAB GUI常用函数使用

uigetfile

uigetfile('FileterSpec','DialogTitle','DefaultName','MultiSelect',selectmode)
  • 输入选项
    FilterSpec:决定对话框文件的初始显示,如’.m’列出所有的M文件*
    DialogTitle:对话框标题的字符串
    DefaultName:以像素为单位的参数x,y定义对话框的初始位置
    MultiSelect:多选模式开关

  • 输出选项
    FileName:输出文件的文件名称字符串
    PathName:输出文件的路径的字符串
    FilterIndex:对话框过滤条件的需要,从1开始!

a={'*.m','M-File(*.m)';'*.fig','Figure(*.fig)';...
    '*.mat','MAT-file(*.mat)';...
    '.mdl','Models(*.mdl)';...
    '*.*','All Files'};
[FileName,PathName]=uigetfile(a,'MultiSelect','on')

默认打开文件为mygui

a={'*.m','M-File(*.m)';'*.fig','Figure(*.fig)';...
    '*.mat','MAT-file(*.mat)';...
    '.mdl','Models(*.mdl)';...
    '*.*','All Files'};
[FileName,PathName]=uigetfile(a,'MultiSelect','on','DefaultName','mygui')
  1. 列表内容
  2. uiputfile
    [FileName,PathName,FilterIndex] =uiputfile(FilterSpec,DialogTitle,DefaultName)

    • 输入参数
      FilterSpec:决定对话框中的文件的初始显示。
      DialogTitle:对话框标题字符串。
      DefaultName:保存文件的默认名。

    • 输出参数
      FileName:对话框所选文件的名字字符串。
      PathName:对话框所选文件的名称字符串。
      FilterIndex:对话框内过滤条件的需要,从1开始,如果用户按了取消按钮则FilterIndex设置为0.

s={'*.m','Mfile';'*.fig','Figure';'*.mat','MAT-File';'*.mdl,*.slx','Simulink'};
DefaultName='MyMATLAB';
DefaultTitle='MATLAB SAVE';
[FileName,PathName]=uiputfile(s,DefaultName,DefaultTitle);

uisetcolor

h=figure;
c=uisetcolor(h,'Set Figure Color')

uisetfont:设置text,axes,uicontrol对象的字体,主要有FontName,FontUnits,FontSize,FontWeught,FontAngle。

h=figure;
c1=uicontrol(h,'Style','pushbutton',...
    'Position',[20 40 200 30],...
    'String','XYZ');
c2=uicontrol(h,'Style','pushbutton',...
    'Position',[20,60 200 30],...
    'String','ABC');
S=uisetfont(c1,'SET Font')

uiinputdlg:输入对话框
answer = inputdlg(prompt,dlg_title,num_lines,defAns,options)

  • prompt:对话框的提示字符。

  • dlg:对话框中的内容。

  • num_lines:m×2矩阵,第一列表示各个对话框的行数,第二列表示输入框的宽度。

  • adfAns:是一个字符串或者字符串数组用来表示各个输入项目的默认值。

  • option

    • Resize:’on’表示窗口可以水平拉伸,’off’表示不能(default)

    • WindowStyle:‘normal’或者‘modal’(default)

    • Interpreter:’tex’:表示对话框中的内容用Tex解释,‘none’(default)

str={'Company','Country','Brand'};
val={'Apple','USA','Made In USA'};
idlg=inputdlg(str,'Great Company',1,val,'on')

msgbox:消息显示对话框

输入参数:

  • Message:显示在消息对话框中的文字(可以是cell数组)

  • Title:消息对话框中的标题

  • Icon:消息对话框中的图标自带的图像有error,help,warm。

  • custom:

    • IconData:自定义图标的图形数据

    -IconCMap:自定义图标的colormap(TrueColor图像没有)

[cdata,cmap]=imread('trees.tif');
h=msgbox('Show The message','Message','custom',cdata,spring)
createStruct.Interpreter='tex';
createStruct.WindowStyle='modal';
h=msgbox('y=1/{2\pi}^{1/2}*e^{x^2/2}','Normal Distribution Function',createStruct)

questdlg:提问对话框

button = questdlg(‘qstring’,’title’,’str1’,’str2’,’str3’,default)

  • qstring:在提问对话框中显示的内容。

  • title:提问对话框中的标题。

  • Option:设置Interpreter为none或者Tex

-default:表示默认选中的提问对话框,必须与前面的对话框中的一个相同。

-button:选中是,值为Yes,选中否,值为No,选中取消,值为Cancel。

choice=questdlg('Would you like a dessert?',...
    'Deseert Menu',...
    'Ice cream','Cake','No Thanks','No Thanks');
switch choice
    case 'Ice cream'
        disp([choice 'Coming'])
        dessert=1;
    case 'Cake'
        disp([choise 'Coming'])
        dessert=2;
    case 'No Thanks'
        disp('I''ll bring your check.')
        dessert=0;
end

errordlg出错对话框:

h = errordlg(errorstring,dlgname,createmode)

  • errorstring:错误提示内容

  • dlgname:错误提示标题。

  • createmode:

createmode ValueDescription
‘modal’替代已经最近创建的或者点击的制定标题的错误对话框,指定一个情景对话框所有的有相同标题的其他对话框被删除,对话框能被情景或非情景对话框取代
‘nonmodal’(default)用指定的参数创建一个新的非情景对话框,已经存在的有相同标题的错误对话框不被删除
‘replace’替代已经最近创建的或者点击的指定标题的错误对话框,指定一个非情景对话框所有的有相同标题的其他对话框被删除,对话框能被情景或非情景对话框取代
Cstruct.WindowStyle='nonmodal';
Cstruct.Interpreter='Tex';
errordlg('Error x^2+y^2=f(x,y)','Error',Cstruct)
### 如何在MATLAB中设计多窗口应用程序 #### 设计原则 为了有效地管理和创建多个窗口,在MATLAB环境中应当遵循良好的面向对象编程(OOP)模式。这有助于提高代码可读性和维护性,同时也使得界面更加灵活和易于扩展[^1]。 #### 创建独立的GUI文件 对于每一个新窗口,建议单独编写一个`.m`脚本或函数来定义该窗口的内容及其交互逻辑。这样可以保持各个部分之间的清晰分离,并减少不同组件间的耦合度。当需要打开新的子窗体时,可以通过调用相应的构造函数实例化它们。 #### 使用GUIDE工具快速构建UI框架 虽然MathWorks官方推荐使用App Designer来进行现代风格的应用开发,但对于一些特定需求或者遗留项目来说,传统的GUIDE(Graphical User Interface Development Environment)仍然是非常实用的选择之一。利用此工具可以拖拽控件到画布上完成初步布局工作,之后再手动编辑生成的回调处理程序以实现具体业务功能。 #### 实现父子关系控制 为了让主窗口能够监听并响应其他辅助对话框的状态变化,可以在启动次级窗口之前保存其句柄;而在关闭任何一个弹出层的时候,则向父容器发送通知消息以便更新显示状态或其他必要操作。此外还可以借助事件侦听机制简化跨部件间的信息传递流程。 下面给出一段简单的示例代码用于说明上述概念: ```matlab function main_window() % 主窗口初始化 hFigMain = figure('Name','Multi Window App Main Frame',... 'NumberTitle','off',... 'Resize','on',... 'Position',[300 200 800 600]); uicontrol('Style', 'pushbutton',... 'String', 'Open Child',... 'Callback', @open_child,... 'Parent',hFigMain); end function open_child(~,~) % 打开子窗口 childHandle = sub_window(); setappdata(gcf,'childWindow',childHandle); % 记录子窗口句柄 end function close_notify(src,eventData) % 子窗口关闭后的回调动作 disp(['Child window closed at ', datestr(now)]); delete(findobj(0,'Tag','subWin'));% 清除已关闭的子窗口记录 end function hFigSub=sub_window() % 定义子窗口外观及行为特性 hFigSub=figure('Name','Secondary Dialog Box',... 'NumberTitle','off',... 'IntegerHandle','off',... 'CloseRequestFcn',{@close_notify},... 'Visible','off'); movegui(hFigSub,'center'); % 居中显示 show(hFigSub); drawnow; end ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值