나는 그림을 .eps 형식으로 저장하는 프로젝트에서 일하고 있습니다.Qt4.7에서 픽셀을 밀리미터로 변환하는 방법은 무엇입니까?
그림 자체가 위젯에 있기 때문에 위젯의 크기를 픽셀에서 밀리미터로 변환해야 출력 이미지의 크기를 올바르게 설정할 수 있습니다.
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);
문제는 widthMM
및 heightMM
는 신뢰할 수 없습니다 거짓 결과를 제공한다는 것입니다 :
이
내가 사용하고있는 코드입니다.실제 측정을 올바르게 수행하려면 플랫폼 간 솔루션이 필요합니다.
크로스 플랫폼 화면 메트릭 기능이 있다고 생각하지 않습니다. 당신은 Qt를 (분명히 실패한) Qt에 의존하거나 플랫폼 레벨 코드 (Win32, X11, Mac)를 써야합니다. – rubenvb
설명서에 "플랫폼 제한으로 인해이 기능을 사용하여 화면의 위젯 실제 크기를 확인할 수 없을 수도 있습니다." 그래서 네가 거기에서 운이 없다고 생각해. 화면의 실제 크기를 측정하는 것이 아니라 규모가 어떤지를 결정하는 것이 좋습니다. – Bart
rubenvb : 어쩌면,하지만 그걸 최후의 수단으로 남겨 둘 것입니다. 바트 : 특정 크기 (100x100 MM)로 이미지를 그릴 생각이었습니다. 문제는 내가 크기 (80x40 픽셀)의 이미지를 가지고 있고 (일반) 크기를 줄이고 그 이미지를 그리면 공간의 절반 만 차지하게 될 것이라고 생각합니다 ... 그러나 임의의 크기로 만들 수 있다고는 생각하지 않습니다. 나는이 접근법에 적응한다 ... 나는 아직도 다른 제안을 위해 열려있다. 고마워요 –