将Matlab GUI转换为guide GUI

4

我继承了一堆 Matlab 脚本,使用 uicontrol、uimenu 等手动构建 GUI。多年来,我们需要删除和添加 GUI 元素,由于所有位置都在脚本中手动指定,布局没有真正改变以适应缺失的元素,因此它看起来像一堆垃圾。

有没有办法自动将我的 Matlab 脚本 GUI 转换为可以使用 Guide 的形式?我不想重新开始...

2个回答

6
使用GUIDE生成的GUI与手动编写的GUI相比,其可维护性在我看来甚至更差(如果不是更差的话)。
令人遗憾的是,在MATLAB中没有内置的布局管理器(虽然在FEX上有一些由用户提供的布局管理器,如border layoutgridbag layout等)。如果您正在重构代码,请考虑使用某种GUI布局管理器。
回答您的问题,据我所知,目前没有自动转换此类GUI的工具。
确切地说,MATLAB具有一些未记录的布局管理器:uiflowcontaineruigridcontainer。请参阅Yair Altman的文章

我可以问一下你为什么不喜欢 GUIDE 吗? - mjr
1
@mjr:我并不讨厌它,它确实有其用途。只是根据你的描述,我有这样的印象:你的项目正开始超越简单的 GUI,使用 GUIDE 的拖放方式管理 UI 控件位置与手动在代码中硬编码控件位置没有多大区别。更好的解决方案是让布局管理器来操心“布局” :) 例如,可以看看 FEX 上的 GUI Layout Toolbox(它还有很好的文档)。 - Amro

2

嗯,没有自动转换工具,但你不需要从头开始用GUIDE创建所有内容。

执行GUI使其显示并将图形窗口保存为fig文件。然后可以使用guide进行编辑。然而,这需要在代码中进行手动调整,特别是如果需要访问句柄,我也不确定回调函数的情况。

但正如Amro已经指出的那样,GUIDE并不是一个完美的解决方案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接