首页/文章/ 详情

Appdesigner笔记 | 对话框&全局变量

1年前浏览3279

今日起,木木将陆续推出几篇界面设计的推文,记录学习Matlab界面设计的过程,方便以后复盘。

题外话

学习界面设计的最终目的,是想将自己对于有限元编程的一些见解全部集中于一款小软件中,暂且命名为MFEA,即mumu的FEA~(目前正在开发调试中)

主打一个免费!内部函数代码多参考于之前木木给大家推荐的课程:计算不收敛?接触问题有限元Matlab编程求解攻略(下)

若要获取有限元核心求解代码,可购买上述课程进行获取。

功能将陆续包含线弹性范围内的各种实体单元的编程、几何非线性、接触非线性、材料非线性、动力学、传热学、XFEM功能等。

为便于处理各种复杂情况下的模型,MFEA不包含前处理设置(能力有限),线性方程组求解前期使用Matalb最直接的\,迭代法求解将在后续的版本中更新,后处理将采用matlab强大的绘图功能,我们拭目以待!

目的在于引导刚接触有限元或者对有限元编程感兴趣的小白,使之在一步步的演绎下,对之产生热爱之情,可用于自己日常的有限元学习过程中。

来到我们今天推文的重点:Appdesigner的使用

对话框

本次所演示的界面如下图所示:

消息框

当我们点击About按钮时,会弹出如下的消息框:

 

其回调函数为:

function AboutButtonPushed(app, event)
    msgbox('This is my first finite element analysis program, thanks for the support!','对话框','help')
end

msgbox的使用方法为:msgbox('显示内容','标题','系统图标')

其中系统图标可选:none、error、help、warn

示例:

 
 
 

退出框

退出按钮的回调函数为:

function ExitButtonPushed(app, event)
    choice = questdlg("确定关闭吗?","关闭","YES","NO","NO");
    switch choice
        case "YES"
            delete(app.MFEAV10UIFigure); %关闭所有窗口
            return;
        case "NO"
            return;
    end 
end

点击Exit后效果如下:

 

questdlg的使用方法可通过上述回调函数,简单猜出,这里不做重复叙述。

选择文件框

重点来啦!!!如何调出文件选择框?这是我界面的最开始部分,因为我在程序里将有限元的数据:单元节点、约束、荷载、材料属性等信息,均以关键词的形式罗列在文本文件中,就像是Abaqus的inp文件类似,所以,界面中必须要有文件选择这个功能。

其回调函数为:

function SelectFileButtonPushed(app, event)
    [filename, filepath] = uigetfile('*.*''请选择文件');
    app.FilenameEditField.Value = filename;
end

效果如下:

 
 

即刻显示文件名字,但是现在问题来了,此时的文件仍处在function,也就是说还是局部变量,别的按钮不能调用它,这就很不方便了,需要用到全局变量这一概念,Appdesigner的全局变量如何定义,且看下节展示。

全局变量

上节学会了消息框、退出程序按钮及文件选择的功能,本节对文件选择功能来一个补充(全局变量)。

在设计器中可以选择添加私有属性

 

代码视图将会多出这样几行代码:

properties (Access = private)
    Property % Description
end

我们可以在里面添加全局变量,如:file,在后续回调函数调用的过程中,需要将file变量改为app.file,即:

 

这样以来,才能在别的按钮中调用之前的文件,如:

 

本次分享就先这么多,对于新手并不友好,只是拿来作为自己的学习笔记记录。


来源:易木木响叮当
Abaqus非线性材料
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-09-21
最近编辑:1年前
易木木响叮当
硕士 有限元爱好者
获赞 224粉丝 284文章 355课程 2
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈