基于GUI的Matlab .m文件无法正确呈现

时间:2014-12-18 13:16:27

标签: matlab rendering matlab-guide

我正在研究MATLAB R2013a。除了一些具有GUI组件的.m文件外,一切正常。当我运行这些文件时,GUI窗口不会弹出。它显示在我的任务栏上,但是当我点击它时,它就不会弹出。

在另一个实例(不同的.m文件)中,GUI弹出,但在屏幕上没有正确对齐。它的1/4位于屏幕之外,当我试图将其拉下时,它就无法工作。它没有重新调整大小/恢复,因此我也无法以这种方式对齐它。

我之前使用的是Windows 8,所以我认为这可能是一个问题。因为这些.m文件适用于我的朋友'计算机,有Windows 7.然后我在我的笔记本电脑上安装了Win 7,但问题仍然存在。

我改变了Matlab verison无济于事。请帮忙!

1 个答案:

答案 0 :(得分:0)

正如我在评论中所写,请检查主图窗口的UnitsPosition属性。如果内置GUIDE,您可以在GUIDE界面中双击图形窗口(而不是其中一个子组件)上的任何位置来打开属性管理器。您也可以通过在代码中插入breakpoint并在主图句柄(或the dot notation if you have 2014b and newer)中使用get()命令来以编程方式检查此内容。

虽然R2014b中的默认Units数字属性为pixels,但在旧版本中(我不知道它何时切换,但我很高兴他们这样做)默认为{{1}来自the documentation的是:

  

字符单位由默认系统字体决定。每   字符单位是字母x的宽度。每个人的身高   字符单位是两行基线之间的距离   文本。

因为它们是由您的默认系统字体决定的,所以它们在Windows安装之间会有所不同,并且在操作系统(如OSX)之间肯定会有所不同,从而导致相当大的(并且令人沮丧的)兼容性问题。最好的办法是将所有组件的characters属性更改为统一单元。我见过的最常见的是Unitspixels;没有“正确”的答案,所以请与他们一起玩,看看你更喜欢在特定环境中使用哪一个。幸运的是,如果您在GUIDE中更改它们,它们(应该)会自动转换以在构造界面中保留布局。

另一个有用的函数是movegui(),它允许您使用字符串或位置向量设置图形的位置。假设您的数字小于屏幕分辨率,将normalized放入movegui(handles.mainfigurewindowhandlehere, 'onscreen')应该会将其恢复到屏幕上。有关其他参数,请参阅文档。我通常在每个GUI中调用此函数,无论是以编程方式还是在GUIDE中构建。