вывести qgraphcsitem из ошибки qgraphicsscene - PullRequest
0 голосов
/ 12 марта 2019

У меня есть обычный 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();

Почему мой текст увеличивается при печати

...