我正在一個項目中工作,我正在以.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像素),(規則)縮小和繪製這樣的圖像將使它佔據只有一半的空間...但是,我不認爲我會任意大小,這可能會使我採用這種方法...我仍然接受其他建議。非常感謝 –