図面を .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
が信頼できず、誤った結果をもたらすことです。
物理的な測定値を正しく取得するには、クロスプラットフォーム ソリューションが必要です。