У меня есть обычный qgraphicsitem. В его событии рисования я рисую текст, используя qpainter, и добавляю элемент в сцену, используя функцию scene-> addItem ().
QFont font("Times", 10);
painter->setFont(font);
QFontMetrics fm(font);
//draw min value
curveNameHieght = 20;
int minValueWidth = fm.width(m_minValue);
int eachWidth = (m_width - 10.0) / 3.0;
QRect minRect = QRect(curX + 5, curY, eachWidth, curveNameHieght);
painter->drawText(minRect, m_minValue, Qt::AlignLeft | Qt::AlignVCenter);
После этого я пытаюсь напечатать эту сцену. В диалоговом окне предварительного просмотра текст элемента отображается больше, чем тот, который отображается на сцене.
Мой печатный код
printer->setPageSize(QPagedPaintDevice::PageSize::Letter);
QPainter painter(printer);
QRectF sceneRect = scene->sceneRect();
QRect pageRect = printer->paperRect();
qreal left, right, top, bottom;
printer->getPageMargins(&left, &top, &right, &bottom,QPrinter::DevicePixel);
QRectF paintRect = QRectF(left,top, pageRect.width() - right, pageRect.height() - bottom);
painter.setRenderHint(QPainter::Antialiasing);
painter.setRenderHint(QPainter::TextAntialiasing);
painter.drawRect(paintRect);
scene->render(&painter);
painter.end();
Почему мой текст увеличивается при печати