Feature - Fonctionnalité #4650
Affichage High DPI
100%
Description
Problème d'affichage sur les grosses résolutions
Historique
#1 Mis à jour par Icham Sirat il y a environ 9 ans
Apparement, il est possible de modifier tout ça à la volée grâce qu qt.conf -> mais seulement en Qt5.4 [[http://doc.qt.io/qt-5/highdpi.html]]
Pour nous, en Qt5.3, il faut tester ça :- variable d'environnement QT_DEVICE_PIXEL_RATIO=2 -> ne fonctionne pas
- app.setAttribute(Qt::AA_UseHighDpiPixmaps, true); à mettre dans le main. (test en cours)
#2 Mis à jour par Icham Sirat il y a presque 9 ans
Bon ça n'a rien changer :/
Je vais essayer de modifier les layouts !
#3 Mis à jour par Icham Sirat il y a presque 9 ans
- % réalisé changé de 0 à 30
Bon c'est fait pour les layouts mais il y a quand même des problèmes.
Du coup, j'ai réinitialisé la police des framAppShort.
J'ai utilisé quelques réglages QApplication :
a.setAttribute(Qt::AA_UseHighDpiPixmaps, true); a.setAttribute(Qt::AA_Use96Dpi, true); a.setAttribute(Qt::AA_UseDesktopOpenGL, true);
Je sens une différence de rendu avec le premier et le dernier paramètres. Par contre, forcer 96 DPI n'est peut-être pas une bonne idée.
En tout cas, ça fonctionne pas comme je l'espérais...
Je retente un build sans.
#4 Mis à jour par Icham Sirat il y a presque 9 ans
Ah, je vais essayer de suivre ça : https://bugreports.qt.io/browse/QTBUG-38993
#5 Mis à jour par Icham Sirat il y a presque 9 ans
Bon ça passe pas :
ShellScalingAPI.h : Minimum supported client -> Windows 8.1 [desktop apps only] ou Server 2012 R2
On est cuit, j'essaye de trouver d'autre solution.
#6 Mis à jour par Icham Sirat il y a presque 9 ans
Test de calcul du ratio de l'application et de la police au démarrage.
#7 Mis à jour par Icham Sirat il y a presque 9 ans
- % réalisé changé de 30 à 40
Bon ça fonctionne pour le texte : par contre pas pour le menu déroulant, et j'ai un petit soucis d'interligne sur les frameApps
#8 Mis à jour par Icham Sirat il y a presque 9 ans
Bon j'essaye de "scaler" mon bureau au même DPI que Windows.
Pour trouver la valeur, vu que Windows permet de gérer ça grâce à une échelle, il faut aller dans le registre :
HKEY_CURRENT_USER\Control Panel\Desktop et regarder la valeur LogPixels
Sur la tablette à problème, cette valeur est égale à 90.
Bon ça change rien :/
#9 Mis à jour par Eric Seigne il y a presque 9 ans
Est-ce que ceci apportait pas des éléments de réponse: http://www.itopen.it/qgis-and-qt-getting-ready-for-hidpi-screens/
#10 Mis à jour par Icham Sirat il y a presque 9 ans
Remplacement des setPixelSize par setPointSize (cf lien donné par Eric)
#11 Mis à jour par Icham Sirat il y a presque 9 ans
- % réalisé changé de 40 à 50
Bon les setPointSize marchent que sur aLacarte : pour les autres logiciels, c'est pas ça : c'est dû au fait que le menu graphique est inclus dans l'objet AbulEduPageAccueilV1 et que les tailles sont gérées par des setDimensionsWidget() appelés lors de redimensionnement...
J'ai essayé de passer par des resizeEvent mais il n'est jamais appelé quand il est dans AbulEduPageAccueilV1 : dans AlaCarte ça fonctionne vu que je n'ai qu'une seule mainwindow.
Le truc important, c'est que dans AlaCarte, le menu graphique est dans un layout, et je crois que ce n'est pas la cas dans la classe AbulEduPageAccueilV1.
Faut encore gratter ! (tester sur Aller, Mulot & AlaCarte)
Je regarde si je peux mettre un layout dans AbulEduPageAccueilV1 sans tout casser :/ -> rah ça va être compliqué, c'est une QGraphicsView
#12 Mis à jour par Icham Sirat il y a presque 9 ans
Essai de transposition du code du patch Qt présent ici : https://bugreports.qt.io/browse/QTBUG-26795
Par contre, la méthode devicePixelRatio me renvoie toujours 1 chez moi, peut-être que ça change par plateforme...
#13 Mis à jour par Icham Sirat il y a presque 9 ans
- Projet changé de abuledu-alacarte à leterrier-developpeurs
#14 Mis à jour par Icham Sirat il y a presque 9 ans
PENSE-BÊTE : TODO (projet Aller) :
<AbulEduGraphicMenu>
+ remplacer setPixelSize par setPointSize
+ récupérer le mot le plus long dans le menu pour calcul QFontMetrics (afin que tout les mots aient la même taille de police)
#15 Mis à jour par Icham Sirat il y a presque 9 ans
Essai du calcul par rapport a la taille du bouton, avec un minimum de 9 pour la taille du point : tous les boutons n'ont pas la même taille de police.
#16 Mis à jour par Icham Sirat il y a presque 9 ans
Petite idée : gérer la police par la taille après calcul de dimension des abuleduflatbouton (l'algo fait en sorte que tous les abuleduflatbouton ont la même taille :p).
#17 Mis à jour par Icham Sirat il y a presque 9 ans
Petite découverte : en fait, les boutons font la même hauteur après redimensionnement, mais pas la même largeur ! C'est peut-être là le problème ...
#18 Mis à jour par Icham Sirat il y a presque 9 ans
Forcé d'utiliser une valeur arbitraire pour que la taille de police soit la même : peut pas mettre de layout, les icônes n'ont pas la même taille.
Ou sinon, en petite taille on cache le texte, et on met les textes quand fullsize (pseudo gestion responsive) ?
Bon en attendant j'envoie ça !
#19 Mis à jour par Icham Sirat il y a presque 9 ans
Ah c'est pas possible, ça casse tout dans les logiciels à côté !
Faut reprendre l'AbulEduGraphicMenu avec des layouts, des icônes de même taille, etc..
J'ai testé mais faut tout reprendre : les calculs, le placement des images de fond pendant le dépliage... Presque tout quoi.
#20 Mis à jour par Icham Sirat il y a presque 9 ans
Bon j'ai annulé mon commit : ça marche dans aller, mais plus dans mulot ni alacarte...
#21 Mis à jour par Icham Sirat il y a presque 9 ans
Bon le support highdpi est arrivé depuis Qt5.4 et optimisé dans Qt5.5 : http://stackoverflow.com/questions/24367355/automatic-rescaling-of-an-application-on-high-dpi-windows-platform/28598760#28598760 / http://doc.qt.io/qt-5/highdpi.html
Je pense qu'il faut qu'on upgrade Qt chez nous et puis optimiser là où ça coince.
#22 Mis à jour par Icham Sirat il y a presque 9 ans
- Statut changé de Assigned - En cours à Fixed - Corrigé - Implémenté
- % réalisé changé de 50 à 100
Bon le test mulot d'hier #4766 : c'est normalement ok.
Il faudra peut-être poussé un peu le sujet pour certains aspects mais on peut d'ors et déjà dire que Qt5.6 gère le problème =)
Je clôture le ticket.