1

我正在一个项目中工作,我正在以 .eps 格式保存绘图。

绘图本身在一个小部件上,我需要将小部件的大小从像素转换为毫米,以便正确设置输出图片的大小。

这是我正在使用的代码:

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不可靠并且给出错误的结果。

我需要一个跨平台的解决方案来正确地进行物理测量。

4

1 回答 1

1

Those functions ask window management system, that is usually unsure itself. If you just want cute GUI, learn to use layout managers. If you have to display something of absolute size on screen (I had) you should do calibration. Display a line and let user resize it until it is exactly, say, 5cm.

于 2011-11-30T13:43:08.933 回答