Verfügt SWT (oder JFace) über eine öffentliche Convenience-Methode für die Konvertierung konventioneller Einheiten in ihre skalierten Gegenstücke? Ich habe erwähnt, eine DPIUtil
Klasse, aber das ist Teil eines internen NamespaceWie nutzen Sie die Hi-DPI-Unterstützung von SWT für die Widget-Dimensionierung?
Wenn es keine Komfort-Methode zur Verfügung steht, gibt es eine zuverlässige Möglichkeit, auf die Zoomstufe zugreifen? Ich sehe, es gibt Device#getDeviceZoom(), aber das ist geschützt. Es gibt Device#getDPI(), die öffentlich ist, also könnte es nützlich sein. Berücksichtigt das Skalierung oder ist es naiv und erklärt einfach, dass DPI für alles ist?
Ich verwende Standardgrößen Hinweise auf einige Panels und ich möchte, dass sie die Monitorskalierung Einstellung berücksichtigen. Z. B. Sprich auf einer normalen Anzeige Ich möchte, dass die Vorgabe 300px beträgt, aber bei 150% Skalierung möchte ich sie auf 450px berechnen. Die Berechnung ist offensichtlich einfach, aber ich brauche den Multiplikator.
HINWEIS: Dies ist verwandt aber anders als meine vorherige Frage How do you utilize SWT's Hi-DPI support for icons?, weil SWT Klassen zur Verfügung stellt, um dies speziell mit Bildern zu behandeln.
Normalerweise brauchen Sie das nicht. Die Angabe einer Größe von 300px wird automatisch von SWT auf einem 150 skalierten Gerät auf 450px skaliert (und jedes von Ihnen bereitgestellte 150 skalierte Bild wird verwendet). Ich habe einen iMac zwei Bildschirme - ein 5k-Bildschirm skaliert bei 200 und ein 2,5k Bildschirm nicht skaliert - SWT-Anwendungen erscheinen auf beiden die gleiche Größe. –
@ greg-449 Ich habe nicht bemerkt, dass es automatisch konvertiert wird. Vermerkt SWT das irgendwo oder eines dieser undokumentierten Features, an die sich die meisten Implementierungen halten? Ich konnte keine umfassenden Informationen zur DPI-Skalierung mit SWT finden. – cpburnz
Es ist nicht wirklich SWT, es ist das Betriebssystem (zumindest so funktioniert es auf macOS). Das Betriebssystem skaliert die Größen, gibt Schriften in der höheren Auflösung wieder und verwendet die hochauflösenden Bilder, falls verfügbar. Programme müssen also nichts anderes tun, als hochauflösende Bilder zur Verfügung zu stellen. –