Closed. This question is opinion-based. It is not currently accepting answers.
Learn more。
想改进这个问题吗更新问题,以便
editing this post可以用事实和引用来回答。
四年前关闭。
我一直试图在MATLAB中建立一个图形用户界面,但遇到了很大的困难这里有一个关于我的程序的小背景:我想创建一个向导来引导用户完成图像分析过程向导将提示用户输入,然后在按下标记为“下一步”的按钮后执行图像处理操作,依此类推通过阅读MATLAB帮助,我相信有两种创建图形用户界面的方法:1用几行代码编写一个gui2使用指南。
我想导游的学习曲线最浅起初这个过程是直接的我可以拖放按钮和文本框并轻松地排列它们我的计划是安排一系列的面板,包括按钮和文本等,当按下“下一步”按钮时,这些面板将依次变为可见就在这里我被难住了。
一旦我用GUIDE保存了一个面板,MATLAB就会创建一个.m文件和一个.fig文件通过阅读.m文件,我发现它给我留下了编写回调代码的空间,但几乎没有其他空间。fig文件是二进制的,因此我不敢编辑它我想知道如何控制对象,例如如何设置面板的可见性?此外,我必须分别创建向导的每个面板我希望可以手动将.m文件合并到一个wizard.m包装器文件中,但我认为这不是正确的方法(至少对我来说是这样,因为我看不到如何做到这一点)。
代替使用指南,我看到了使用“uicontrol”函数创建gui的示例这种方法对我来说似乎很乏味,因为我必须手动编码每个按钮的位置、大小和默认值也许这是最好的方法,但它吓坏了我。
因此,我对MATLAB看似笨重的图形用户界面工具感到不满,也对自己缺乏克服这一障碍的能力感到不满。
我在Matlab中看到了一些奇特的GUI,并且尝试了这一点,并且很短的一段时间,我被它们的存在迷惑了。不管是谁创造了他们都是出色的MATLAB用户(我不是),或者我错过了一些显而易见的东西,需要一些帮助才能看到我现在怀疑gui是否值得这么做我不认为自己在探索QT之类的东西,因为将MATLAB代码嵌入到其他语言(如python)中会带来额外的挑战。
有人对这个问题有意见吗有人能指出我错在哪里吗?为什么我有这么大的困难?
fig文件是二进制的,因此我不敢编辑它。
FIG文件是一个MAT文件,包含gui元素列表,其中包含在GUIDE中设置的属性。
如何设置面板的可见性
为元素分配一个标记,您可以使用handles.mytag
likeset(handles.mypanel, 'visible', 'off')
访问它
而且,我必须创造
向导的每个面板都是分开的我希望我能
手动将.m文件合并到一个向导.m包装文件中,但是
不认为这是正确的方法(至少对我来说,因为我
不知道怎么做)。
您不能将这些自动生成的m文件合并为一个,为什么还要这样做?为每个向导页保留一个.fig和.m文件!
我已经看到了使用
“uicontrol”功能这种方法对我来说似乎很乏味,因为
必须手动编码每个
按钮也许这是最好的方法,但它吓坏了我。
如果您不手动定位元素,而是使用布局管理器,那么直接使用uicontrol
也不错你可以看到一些here和here如果您希望gui能够很好地调整大小,那么layout manager是唯一的方法。
有人对这个问题有意见吗有人能指出吗
我做错了什么?为什么我有这么大的困难?
专业的GUI编程并不容易,IMO甚至是最困难的部分。
除了MATLAB GUI我已经使用了Java Swing和.NET WPF很多,IMO的matlabgui要简单得多,你可以用10%的努力完成90%的任务,当然,你还需要时间来适应它。
因此,我对Matlab看似笨拙的图形用户界面感到不满
工具和我对自己缺乏克服困难的能力感到不满
这个障碍。
是的,GUIDE不是最好的解决方案,但可能是快速创建GUI的最佳技术。
我见过一些在MATLAB中创建的奇特的图形用户界面,并尝试过
我自己和堕落的路,我被他们的存在迷住了。
这些GUI是利用MATLAB GUI的特殊细节的黑客,比如视觉分隔符是白色uicontrol上的一个很长的黑色文本,在工具提示中只有两个像素高或不同颜色,使用html。
毕竟,您可以在MATLAB GUI中使用Java Swing(因为它实际上是从Swing派生的)
我现在怀疑gui是否值得这么做。
是的,在你的情况下保持它非常简单,只是功能,不要想花哨的东西!