您如何利用SWT的Hi-DPI支持来调整小部件大小?



swt(或jface)是否具有将常规单元转换为其缩放的对应物的公共便利方法?我发现提到DPIUtil类,但这是内部名称空间的一部分

如果没有便利的方法,那么是否有可靠的访问缩放级别的方法?我看到有设备#getDevicezoom(),但这受到了保护。有公共设备#getDpi(),因此可能有用。这是考虑到缩放的考虑,还是天真,只是声明DPI为96?

我正在将默认的大小提示应用于某些面板,我希望他们考虑监视器缩放设置。例如,在常规显示上,我希望默认值为300px,但按比例进行150%,我想计算为450px。计算显然很简单,但我需要乘数。

注意:这与我以前的问题有关,您如何利用SWT对图标的HI-DPI支持?因为SWT提供了专门处理图像的类。

我除了dpiutil以确定比例(Zoom)因子。

,但是您通常不需要此信息。在150缩放的设备上,指定300px的尺寸将自动缩放到450px(以及您提供的任何150个缩放图像)。我有一个带有两个屏幕的iMac-一个5K屏幕在200上缩放,而2.5k屏幕未缩放 - SWT应用在这两个方面的大小相同。

缩放实际上是在OS而不是SWT中完成的(至少这是MacOS上的工作方式)。操作系统缩放大小,以较高分辨率呈现字体,并使用高分辨率图像(如果可用)。因此,程序无需做任何其他事情,而不是提供高分辨率图像。

这样,即使是不知道缩放显示器的旧程序,仍然出现在明智的大小上。

相关内容

最新更新