Projet

Général

Profil

Feature - Fonctionnalité #4650

Affichage High DPI

Ajouté par Icham Sirat il y a environ 9 ans. Mis à jour il y a presque 9 ans.

Statut:
Fixed - Corrigé - Implémenté
Priorité:
Normale
Assigné à:
Icham Sirat
Catégorie:
-
Début:
22/12/2015
Echéance:
% réalisé:

100%

Temps estimé:
3.00 h

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.

Formats disponibles : Atom PDF

Redmine Appliance - Powered by TurnKey Linux