1.matlab的gui计算怎么导出源代码?
2.源码阅读忆丛(37)Minigui
3.MATLAB GUI 简易教程及.EXE打包示例
matlab的gui计算怎么导出源代码?
你fig文件建立好后
保存
自动跳出生成gui的m文件
m文件
在回调函数callback添加相应的代码后
运行后
就有gui的界面了
有问题留言
源码阅读忆丛()Minigui
探索GUI的历史与实现
对于GUI的细节仍然存在一些困惑,似乎总是有新的东西需要学习。年轻时,对《Windows程序设计》、MFC等书籍充满热情,那些API的游戏截图源码神奇之处让人着迷。然而,花费大量时间深入学习,却似乎事倍功半,微软似乎更倾向于教人如何使用,而非深入解释实现原理。尽管如此,还是挂单神器源码尝试实现过文字版的GUI,涉及基本的按钮、滚动条、菜单等元素。但一些细节仍不清楚。
通过网络搜索,了解到魏永明的Minigui项目是对Windows GUI和GDI的模仿。通过下载vc6版本的MinGUI,能够进行调试。在分析代码时,发现事件回调、消息链等常见功能并无特别之处。而DefaultMainWinProc、源码资本餐饮InvalidateRect、PopupMenuTrackProc等函数则更具实际意义。GUI就像是在显存沙漠中绘画,有其既定规则。DefaultMainWinProc负责实现画最大、最小按钮、窗口方框等常规操作,而绘制的动作有其先后顺序,即消息的先后处理。
GDI部分则展示了如何在显存中书写文字,包括粗体、斜体等效果;如何绘制图标和位图;关键的uthash源码解析rgn裁剪矩形技术,用于加速绘制,矩形外的绘制不会进行。rgn裁剪矩形的运算包括加、减、合、并等,对应着窗口的各种移动和形状改变。不同线程之间的窗口管理由HWND_DESKTOP统一处理,desktop-common.c相当于窗口管理器,不同程序无法直接获取其他窗口的位置和大小,由其进行统一管理。desktop包含三个线程,修罗刀源码分别负责捕捉键盘、鼠标消息,以及实际消息的处理,以及窗口给desktop的消息交由DesktopWinProc统一处理。
MinGUI的模拟版本在调试方面虽能使用,但功能实现上有缺失。相比之下,libminigui-1.0.提供了完整的gui、gdi、kernel代码,定义了大部分的画窗套路和动作,只需要关注关键部分和自己定义的动作即可。
Linux的GUI采用了xwindows,通过socket将xclient进程中的窗口绘制信息传输到xserver,由xserver统一处理。xclient之间互相不知道窗口的位置和大小,因此都通过xserver进行绘制,xserver还包含了窗口管理器。而MinGUI在一个进程的多个线程中实现,不存在窗口管理器与进程间位置信息传递的问题。
Windows使用wink.sys作为窗口管理器,作为内核态程序,用户态的动态链接库在不同进程间数据段不同,但内核态的数据段统一,因此实现了窗口管理。Windows显示流畅的原因之一在于窗口管理机制与MinGUI的desktop类似,但实现机制有所不同。
工作繁忙,业余时间进行学习。尽管以前对GUI有过大量无用功,但这次的探索仅用几天时间便有所收获。
MATLAB GUI 简易教程及.EXE打包示例
新建GUI有两种方式,一种是建立好一个新的空白GUI后,会进入一个界面。
简易GUI程序功能包括:两个GUI,第一个GUI包含一个点击按钮和一个uitable,点击按钮后跳转至第二个GUI。在第二个GUI中,需要在edit控件中输入两个数字,将它们相乘后存储在excel中,同时在第一个GUI的uitable中显示结果。第二个GUI还包含一个关闭按钮,点击可关闭当前GUI并复制保存的excel文件。
简易GUI程序包含以下知识点:在第一个GUI中创建一个按钮和uitable,修改按钮tag为“clickButton”,双击按钮后编写callback函数。在callback函数中加入代码,实现按钮点击后跳转至第二个GUI的功能。在第二个GUI中,创建两个静态文本、两个可编辑文本和两个按钮控件,编写“确定”按钮的代码,实现数据输入、计算与存储功能。
打包GUI程序的方法是使用MALTBA命令行输入“deploytool”,点击"Application Compiler",设置所需内容并点击“Package”开始打包。注意runtime的选择,可选择让安装用户下载runtime,打包后安装包较小但下载速度慢,或将其集成在安装包内,安装包较大但安装速度快,依据个人情况选择。
有关GUI源代码及本文章.md文件,可访问个人GitHub仓库:URL: github.com/Little-Chen-... HTTPS: github.com/Little-Chen-...