Rééchelonnement automatique d'une application sur une plateforme Windows haute résolution?
Je suis en train d'écrire une application Qt qui doit s'exécuter sur de haute résolution de Windows (192dpi au lieu de 96 ppp).
Malheureusement le framework Qt n'a pas de support pour haut-dpi encore (au moins sous Windows), donc ma demande et de tous ses éléments semble avoir la moitié de la taille qu'il devrait.
Est-il de toute façon à force de simuler automatique de la montée en gamme de telles applications par Windows?
source d'informationauteur user3767622 | 2014-06-23
Vous devez vous connecter pour publier un commentaire.
Qt prend entièrement en charge la résolution PPP écrans à partir de Qt 5.6 en avant, via un attribut ou d'une variable d'environnement (sauf sur OS X lorsque l'aide est en natif). Pour l'attribut de méthode, utilisation:
ou de définir la variable d'environnement système:
J'ai testé les deux méthodes sur windows 10 avec une haute résolution surfacebook moniteur et les résultats sont mis à l'échelle correctement comme prévu.
Les Applications qui utilisent fixe les coordonnées et tailles vont chercher la petite sur de haute résolution résolutions. Même si l'aide de mises en page il y a quelques problèmes concernant l'élément et les tailles de police et les marges. Heureusement, il ya un soutien pour la haute résolution affiche depuis Qt 5.4 car il y a eu beaucoup de haute résolution problème de bugs.
Une application sur Windows peut assumer un niveau de "DPI prise de Conscience" (à Partir de la documentation de Qt) :
Aussi elle affirme que :
Vous pouvez lire plus d'informations ici.
En général d'avoir une bonne INTERFACE utilisateur de haute résolution affiche, considérez les points suivants :
Qt::AA_UseHighDpiPixmaps
attribut si vous travaillez avecQPainter
et d'images, ou de calculer un facteur d'échelle pour le réglage de certaines tailles d'éléments dans des situations particulières.Ici est le moyen le plus rapide pour obtenir le problème résolu, sur Windows.
À côté de l'exécutable, de créer un qt.fichier conf (si pas déjà là) et ajoutez la ligne suivante:
La fenêtre floue apparaît lors de la mise à l'échelle. Le gros avantage de cette solution est que Windows ne la mise à l'échelle, pas de Qt. Par conséquent, l'apparition d'artefacts est réduite au minimum. En outre, cela peut s'appliquer à une application distribuée comme il ne nécessite pas de reconstruire.
Bien sûr, ce n'est pas le plus agréable mais le moyen le plus rapide pour vous sortir du pétrin dans le court terme, vous permettant de développer la "vraie" DPI-aware version sans pression.
Je suis à l'aide de Qt 4.8. Tout d'abord, vous devez utiliser des mises en page. Mon but était d'empêcher l'utilisateur de redimensionner les boîtes de dialogue, des formes etc.... trop.
J'ai atteint l'affichage correct des résultats sur les différents DPI par mettre ce code dans le constructeur de boîte de dialogue:
Première ligne
adjustSize()
ajuster la taille de la boîte de dialogue pour s'adapter à son contenu.Deuxième ligne
setFixedSize(size())
corrige la taille de la boîte de dialogue réglage de sa taille par rapport au contenu et empêcher les utilisateurs de redimensionner. Vous n'avez pas à la taille de l'ensemble des politiques.