whe*_*rce 18 matlab user-interface wizard matlab-guide
我一直试图在MATLAB中组合一个gui并且遇到了很大困难.以下是关于我的程序的一些背景知识:我想创建一个向导来引导用户完成图像分析过程.向导将提示用户输入,然后在按下标有"下一步"的按钮后执行图像处理操作,依此类推.从阅读MATLAB帮助我相信gui创建有两种方法:1.用代码行写一个gui.2.使用GUIDE.
我认为GUIDE会有最浅的学习曲线.起初这个过程是直截了当的.我可以拖放按钮和文本框并轻松排列.我的计划是安排一系列面板,按钮和文字等,按下"下一步"按钮后,按顺序显示.就在这里,我变得难过了.
一旦我使用GUIDE保存面板,MATLAB就会创建一个.m文件和一个.fig文件.通过.m文件读取,我发现它为我提供了编写回调代码的空间,但没有其他的东西..fig文件是二进制文件,因此我不敢编辑它.我想知道如何控制对象,例如如何设置面板的可见性?此外,我必须分别创建向导的每个面板.我希望我可以手动将.m文件合并到一个wizard.m包装文件中,但我不认为这是正确的方法(至少对我来说,因为我看不到怎么做).
代替使用GUIDE我已经看过使用"uicontrol"函数创建guis的示例.这种方法对我来说似乎很乏味,因为我必须手动编码每个按钮的位置和大小以及默认值.也许这是最好的方法,但它吓倒了我.
因此,我对MATLAB因其看似笨重的gui工具感到不满,而且我对自己因为缺乏克服这个障碍而感到不满.
我已经看到在MATLAB中创建了一些花哨的guis并且我自己尝试了这个并且缩短了我对它们的存在感到困惑.无论是谁制作它们都是特殊的MATLAB用户(我不是),或者我错过了一些明显的东西,并且可以使用一些帮助.我现在正在质疑gui是否值得付出努力.我不认为自己正在探索类似QT的东西,因为将MATLAB代码嵌入其他语言(如python)的额外挑战.
有没有人就这个问题提出建议?任何人都可以指出我哪里出错或为什么我有这样的困难?
Mik*_*ail 20
.fig文件是二进制文件,因此我不敢编辑它.
FIG文件是一个MAT文件,其中包含gui元素列表,其中包含您在GUIDE中设置的属性.
如何设置面板的可见性?
为元素分配标签,您可以使用handles.mytaglike 来访问它set(handles.mypanel, 'visible', 'off')
此外,我必须分别创建向导的每个面板.我希望我可以手动将.m文件合并到一个wizard.m包装文件中,但我不认为这是正确的方法(至少对我来说,因为我看不到怎么做).
您无法将这些自动生成的m文件合并为一个,为什么还要这样?为每个向导页面保留一个.fig和.m文件!
代替使用GUIDE我已经看过使用"uicontrol"函数创建guis的示例.这种方法对我来说似乎很乏味,因为我必须手动编码每个按钮的位置和大小以及默认值.也许这是最好的方法,但它吓倒了我.
uicontrol如果不手动定位元素但使用布局管理器,则直接使用也不错.你可以在这里和这里看到一些.如果您希望GUI可以很好地调整大小,那么布局管理器是唯一的方法.
有没有人就这个问题提出建议?任何人都可以指出我哪里出错或为什么我有这样的困难?
专业的GUI编程并不容易,IMO甚至是最困难的部分.
除了MATLAB GUI我已经使用了Java Swing和.NET WPF很多,IMO MATLAB GUI更容易,你可以用10%(学习)努力做90%当然,你还需要时间来适应它.
因此,我对MATLAB因其看似笨重的gui工具感到不满,而且我对自己因为缺乏克服这个障碍而感到不满.
是的,GUIDE不是最好的解决方案,但可能是快速创建GUI的最佳技术.
我已经看到在MATLAB中创建了一些花哨的guis并且我自己尝试了这个并且缩短了我对它们的存在感到困惑.
这些GUI是利用MATLAB GUI特定细节的黑客,例如视觉分隔符是白色uicontrol上的长'__________'黑色文本,使用html在工具提示中只有两个像素高或不同的颜色.
毕竟你可以在MATLAB GUI中使用Java Swing(因为它实际上是从Swing派生的)
我现在正在质疑gui是否值得付出努力.
是的,在你的情况下保持它非常简单,只是功能,不要考虑花哨的东西!
截至2015年6月,指南比您想象的要糟糕.配置GUI的效率非常低,因为它太糟糕了.绝对不是专业级.指南,我该如何鄙视你?让我列举一下方法:
1)不标记创建GUI时的输入错误.随着潜伏的这个未公布的错误,您可以工作数小时.当您点击"保存"时,GUIDE将无法保存您的工作.因此,GUIDE违反了任何软件包的主要指令:您不会丢失用户的工作或数据.我无法相信Mathworks实际上发布了这么糟糕的东西.
2)帮派复制是不确定的.假设您有一个计算早餐效果的程序.你有小时,分钟,碳水化合物的数量作为可编辑的盒子.您将标签作为静态文本.午餐和晚餐你想要同样的东西.全选.按Ctrl-C.将光标指向其他位置,然后按Ctrl-V.什么都没发生.不,等待,大约30秒后,粘贴出现.但是,如果你已经做了别的事情,那么......试着搞清楚到底发生了什么.
3)即使是帮派动作也是如此/奇怪/超自然/拥有.假设您想要在午餐时上下移动该行?突出.使用箭头键移动它.成功!可是等等!大约五秒钟后,文本和编辑框开始移回原始位置!没有干预!它被附身了!
我使用GUIDE创建了一个相当复杂的GUI.比它应该 - 或可能 - 更多的心痛和麻烦.鉴于运行JAVA/Python/Julia的免费软件替代品,我不会启动另一个需要GUI的MATLAB项目.保存你的面团!