我正在研究MATLAB R2013a。除了一些具有GUI组件的.m文件外,一切正常。当我运行这些文件时,GUI窗口不会弹出。它显示在我的任务栏上,但是当我点击它时,它就不会弹出。
在另一个实例(不同的.m文件)中,GUI弹出,但在屏幕上没有正确对齐。它的1/4位于屏幕之外,当我试图将其拉下时,它就无法工作。它没有重新调整大小/恢复,因此我也无法以这种方式对齐它。
我之前使用的是Windows 8,所以我认为这可能是一个问题。因为这些.m文件适用于我的朋友'计算机,有Windows 7.然后我在我的笔记本电脑上安装了Win 7,但问题仍然存在。
我改变了Matlab verison无济于事。请帮忙!
答案 0 :(得分:0)
正如我在评论中所写,请检查主图窗口的Units
和Position
属性。如果内置GUIDE,您可以在GUIDE界面中双击图形窗口(而不是其中一个子组件)上的任何位置来打开属性管理器。您也可以通过在代码中插入breakpoint并在主图句柄(或the dot notation if you have 2014b and newer)中使用get()
命令来以编程方式检查此内容。
虽然R2014b中的默认Units
数字属性为pixels
,但在旧版本中(我不知道它何时切换,但我很高兴他们这样做)默认为{{1}来自the documentation的是:
字符单位由默认系统字体决定。每 字符单位是字母x的宽度。每个人的身高 字符单位是两行基线之间的距离 文本。
因为它们是由您的默认系统字体决定的,所以它们在Windows安装之间会有所不同,并且在操作系统(如OSX)之间肯定会有所不同,从而导致相当大的(并且令人沮丧的)兼容性问题。最好的办法是将所有组件的characters
属性更改为统一单元。我见过的最常见的是Units
或pixels
;没有“正确”的答案,所以请与他们一起玩,看看你更喜欢在特定环境中使用哪一个。幸运的是,如果您在GUIDE中更改它们,它们(应该)会自动转换以在构造界面中保留布局。
另一个有用的函数是movegui()
,它允许您使用字符串或位置向量设置图形的位置。假设您的数字小于屏幕分辨率,将normalized
放入movegui(handles.mainfigurewindowhandlehere, 'onscreen')
应该会将其恢复到屏幕上。有关其他参数,请参阅文档。我通常在每个GUI中调用此函数,无论是以编程方式还是在GUIDE中构建。