Je travaille dans un projet où je sauvegarde un dessin au format .eps. Le dessin lui-même est sur un widget, j'ai besoin de convertir la taille du widget de pixels en millimètres afin que je puisse définir la taille de l'image de sortie correctement.Comment convertir des pixels en millimètres en Qt4.7?
C'est le code que je utilise:
int widthmm = QApplication::desktop()->widthMM();
int heightmm = QApplication::desktop()->heightMM();
int widthpx = QApplication::desktop()->width();
int heightpx = QApplication::desktop()->height();
QSize epsPictureSize;
epsPictureSize.setWidth((picture.width*widthmm)/widthpx);
epsPictureSize.setHeight((picture.height*heightmm)/heightpx);
epsPrinter.setPaperSize(epsPictureSize,QPrinter::Millimeter);
Le problème est que widthMM
et heightMM
ne sont pas fiables et donnent des résultats faux.
J'ai besoin d'une solution multiplateforme pour obtenir les mesures physiques correctement.
Je ne pense pas qu'il existe une fonction de métrique d'écran multiplateforme. Vous auriez soit besoin de compter sur Qt pour cela (ce qui échoue évidemment) ou écrire du code au niveau de la plate-forme (Win32, X11, Mac). – rubenvb
Comme le dit la documentation "En raison des limites de la plate-forme, il peut ne pas être possible d'utiliser cette fonction pour déterminer la taille physique réelle d'un widget sur l'écran." Donc je pense que vous n'avez pas de chance là-bas. Il serait peut-être mieux pour vous de décider à quelle échelle quelque chose est, plutôt que de se fier à une mesure de l'écran immobilier. – Bart
Rubenvb: Peut-être, mais je vais laisser cela comme un dernier recours. Bart: Je pensais avoir une échelle spécifique (par exemple 100x100 MM) et dessiner l'image dessus. Le problème est d'imaginer que j'ai une image de taille (80x40 pixels), (normal) de redimensionner et de dessiner une telle image ne fera occuper que la moitié de l'espace ... cependant, je ne pense pas que j'aurai des tailles arbitraires, ce qui pourrait J'adapte cette approche ... Je suis toujours ouvert à d'autres suggestions. Merci beaucoup –