Changement de la taille d'une police dans un QTimeEdit
-
Bonjour,
Sous Qt 6.4.2, Linux Debian stable à jour, X11.
Je souhaite que l'utilisateur puisse modifier la taille d'une police d'un QTimeEdit à l'aide de CTRL + molette souris.
Cela fonctionne très bien tant que je reste au dessus de 10 pt. Si je descends à 9 pt la police reste figée à 9 pt.
Je capture l'évènement wheelEvent, vérifie le modifier CTRL et augmente la taille d'un point si angleDelta>0, -1 sinon :
void EdsTools::up_down_font(QWidget * w, int angleDelta){ QFont f = w->font(); if (up_down_font(f,angleDelta)){ w->setFont(f); } } bool EdsTools::up_down_font(QFont & f, int angleDelta){ int pt = f.pointSize(); angleDelta>0 ? pt++ : pt--; if ((pt > 4) && (pt < 22)){ f.setPointSize(pt); return true; } return false; }
J'ai tenté de faire varier la fonte du lineEdit utilisée par le QTimeEdit avec le même résultat.
Par ailleurs, tous les autres widget de l'appli réagissent parfaitement à cette manipulation. Il me reste ce petit widget et là je ne vois pas.
Je ne sais d'ailleur pas si c'est la bonne méthode pour faire ça. La doc Qt encourage plutôt la modification des styleSheet. J'ai tenté et ça fonctionne très bien sauf que je perds les styleSheet définis avant pour certains widgets.
Pour autant je n'aime pas du tout le remplacement de la fonte d'un widget par une autre. Que devient l'ancienne ?
Cette fonction n'est pas vitale pour l'appli mais elle permettra d'améliorer la lecture de l'info sur certains écrans. J'ai testé en prod et ce champ n'est pas toujours très lisible alors qu'il ne faut pas y passer trop de temps.
Bref, vos lumières seront les bienvenues.
Merci d'avance et belles vacances si vous y êtes !
Sylvain -
Bonjour,
Sous Qt 6.4.2, Linux Debian stable à jour, X11.
Je souhaite que l'utilisateur puisse modifier la taille d'une police d'un QTimeEdit à l'aide de CTRL + molette souris.
Cela fonctionne très bien tant que je reste au dessus de 10 pt. Si je descends à 9 pt la police reste figée à 9 pt.
Je capture l'évènement wheelEvent, vérifie le modifier CTRL et augmente la taille d'un point si angleDelta>0, -1 sinon :
void EdsTools::up_down_font(QWidget * w, int angleDelta){ QFont f = w->font(); if (up_down_font(f,angleDelta)){ w->setFont(f); } } bool EdsTools::up_down_font(QFont & f, int angleDelta){ int pt = f.pointSize(); angleDelta>0 ? pt++ : pt--; if ((pt > 4) && (pt < 22)){ f.setPointSize(pt); return true; } return false; }
J'ai tenté de faire varier la fonte du lineEdit utilisée par le QTimeEdit avec le même résultat.
Par ailleurs, tous les autres widget de l'appli réagissent parfaitement à cette manipulation. Il me reste ce petit widget et là je ne vois pas.
Je ne sais d'ailleur pas si c'est la bonne méthode pour faire ça. La doc Qt encourage plutôt la modification des styleSheet. J'ai tenté et ça fonctionne très bien sauf que je perds les styleSheet définis avant pour certains widgets.
Pour autant je n'aime pas du tout le remplacement de la fonte d'un widget par une autre. Que devient l'ancienne ?
Cette fonction n'est pas vitale pour l'appli mais elle permettra d'améliorer la lecture de l'info sur certains écrans. J'ai testé en prod et ce champ n'est pas toujours très lisible alors qu'il ne faut pas y passer trop de temps.
Bref, vos lumières seront les bienvenues.
Merci d'avance et belles vacances si vous y êtes !
SylvainOk, j'ai compris : en modifiant la taille de la fonte du QLineEdit inclus dans le QTimeEdit, ça fonctionne.
Bêtement je prenais la police "f" du QLineEdit inclus, modifiais la taille de "f" et faisais QLineEdit->parent->setFont(f). Ici "parent" était de trop.
En me relisant, j'espère que ce que j'ai écris est compréhensible...
A+
Sylvain -