您如何利用SWT的Hi-DPI支持小部件尺寸?

SWT(或JFace)是否有一个公共便利的方法将常规单位转换为其缩放对象?我发现提到DPIUtil类,但这是内部命名空间的一部分您如何利用SWT的Hi-DPI支持小部件尺寸?

如果没有可用的便利方法,那么是否有可靠的方法来访问缩放级别?我看到有Device#getDeviceZoom()但这是受保护的。有Device#getDPI()这是公开的,所以它可能是有用的。这是否需要考虑扩大规模,还是天真的,只是宣布DPI为96?

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

注意:这与我之前的问题How do you utilize SWT's Hi-DPI support for icons?有关,但不同,因为SWT提供了专门用于处理图像的类。

回答:

我还没有发现除DPIUtil以外的任何用于确定缩放比例的因素。

但您通常不需要此信息。指定300px的大小将被150缩放设备上的SWT自动缩放为450px(并且将使用您提供的任何150缩放图像)。我有一个带有两个屏幕的iMac - 一个5k屏幕缩放到200,一个2.5k屏幕缩放 - SWT应用在两个屏幕上显示的尺寸相同。

缩放实际上是在OS而不是SWT中完成的(至少它是如何在macOS上工作的)。操作系统放大尺寸,以更高的分辨率呈现字体,并使用高分辨率图像(如果可用)。因此,除了提供高分辨率图像之外,程序不需要做任何事情。

这种方式即使是旧的程序,不知道放大显示仍然显示在一个合理的大小。

以上是 您如何利用SWT的Hi-DPI支持小部件尺寸? 的全部内容, 来源链接: utcz.com/qa/258645.html

回到顶部