我正在一个项目中工作,我正在以.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(这显然失败)或者编写平台级代码(Win32,X11,Mac)。 – rubenvb
正如文档所言:“由于平台限制,可能无法使用此功能来确定屏幕上小部件的实际物理大小。”所以我认为你在那里运气不好。你可能会更好地决定什么是规模,而不是依赖屏幕房地产的一些衡量标准。 – Bart
rubenvb:也许,但我会把它作为最后的手段。 Bart:我正在考虑制定具体的比例尺(比如100x100 MM)并在其上绘制图像。问题是想像我有一个大小的图像(80x40像素),(规则)缩小和绘制这样的图像将使它占据只有一半的空间...但是,我不认为我会任意大小,这可能会使我采用这种方法...我仍然接受其他建议。非常感谢 –