Mac和Windows之间的Matlab GUI兼容性(显示)

Mic*_* Hu 5 windows macos matlab user-interface compatibility

一段时间以来,我一直在研究一系列GUI.我使用运行OSX的Mac来编写我的所有代码,我遇到的问题是,当在Windows中使用GUI时,外观上存在偏差,其中一些是次要的,其中一些非常重要.

1)Windows版本中的文本总体上要大得多.这导致我的一些按钮标题只是关闭按钮,或面板标题移出面板.

2)在Mac和Windows之间,轴似乎是不同的尺寸.即在我的Mac上显示为方形的轴在窗口上显示为细长或矩形,反之亦然.

3)图形显示是不同的.这是真正的问题.我的一些GUI使用轴来显示文本和模型化学反应动画.在Mac上,它们看起来非常精细,但在Windows系统上,尺寸完全没有.

我已按照Mathworks帮助页面的建议将所有"单位"设置为"字符",并且我没有指定任何字体以允许每个系统使用其默认值.但是,我指定了字体大小,但显然,Windows上的12点字体与Mac上的12点字体非常不同.

有没有解决这些问题的方法?我认为设置一个指定的字体大小并允许使用默认字体会解决这个问题,但事实并非如此,而且此时我的想法有点干.

And*_*nke 0

尝试使用“像素”或绝对大小单位而不是“字符”,并对字体大小应用缩放因子。

将“单位”设置为“字符”可能是实现可移植性的错误方法,并且可能是导致显示尺寸问题的主要原因。哪个特定的 Matlab 页面建议您这样做?是在谈论跨平台可移植性吗?该characters单位使用起来非常方便,但它与默认系统字体的字体规格相关。(请参阅单位属性的 doco,网址为http://www.mathworks.com/help/matlab/ref/axes_props.html)。不同操作系统之间的情况会有所不同。使用绝对的“像素”或英寸/厘米/点可能会给您在不同操作系统中提供更统一的结果。

你没有错:OS X 倾向于在比 Windows 更小的屏幕上显示给定大小的字体。(通常;YMMV 取决于您的显示器 DPI 和系统设置以及其他因素。)例如,我在 Windows 中以 10 或 12 点运行终端和文本编辑器,但在 Mac 上以 14 点或更大的点运行。因此,对您在 GUI 中设置的字体大小应用缩放因子。找出在 Mac 上看起来不错的内容,然后在代码中将其扩展为类似的内容windows_font_size = floor(mac_font_size * 0.8),看看效果如何。

如果您想更精确地缩放,您可以使用 获取ScreenPixelsPerInchScreenSizeroot 属性get(0,...)。您还可以调用 Java 代码来获取精确的字体规格信息,以帮助选择字体缩放。

无论哪种方式,您都必须在两个系统上测试您的代码,而不是仅仅期望它可以移植地工作。如果您无法立即访问 Windows 开发系统,请考虑在 Mac 上设置 Windows VM。通过双方之间的文件共享,您将能够在使用代码时在两个平台上尝试代码。