void MainWindow::onPrintClicked()
{
m_printThread = new QThread(this);
m_print = new Print;
// передаем указатель на m_printer
QPrintDialog(m_print->printer(), this);
m_print->moveToThread(m_printThread);
m_printThread->start();
QMetaObject::invokeMethod(m_print, "print", Qt::QueuedConnection);
}
void Print::print()
{
QPainter painter(m_printer);
// рисуем нашу заранее подготовленную картинку с нужным масштабом
painter.drawImage(0, 0, m_img.scaledToWidth(500, Qt::SmoothTransformation)));
}
Проблема в следующем: при печати pdf - все работает отлично, но при печати на реальный принтер получаю варнинг
QPixmap: It is not safe to use pixmaps outside the GUI thread
Дока говорит QPixmap в потоке использовать нельзя, а можно QImage, и именно его я и использую...
В итоге из-за варнингов этих на печати у меня пустые страницы... При том что drawLine и прочие примитивы печатает нормально. Не хочет только QImage.
В чем может быть проблема?