with the code below, i cannot print my image (not shown up). how to solve this? thank in advance.

Qt Code:
  1. #include <QPrintDialog>
  2. #include <QPrinter>
  3. #include <QPainter>
  4. #include <QThread>
  5. #include <QDebug>
  6.  
  7. #include "documentprinter.h"
  8. #include "document.h"
  9.  
  10. DocumentPrinter::DocumentPrinter(Document *document, QObject *parent) :
  11. QObject(parent),
  12. m_printer(0),
  13. m_document(document)
  14. {
  15. }
  16.  
  17. void DocumentPrinter::setDocument(Document *document)
  18. {
  19. m_document = document;
  20. }
  21.  
  22. bool DocumentPrinter::exec()
  23. {
  24. QThread printerThread;
  25. DocumentPrinterWorker docPrinterWorker;
  26. docPrinterWorker.moveToThread(&printerThread);
  27. connect(this, SIGNAL(printStarted(QPrinter*,Document*,int,int)),
  28. &docPrinterWorker, SLOT(printDocument(QPrinter*,Document*,int,int)));
  29.  
  30. QPrintDialog dialog((QWidget *)parent());
  31. dialog.setMinMax(1, m_document->numPages());
  32.  
  33. if (dialog.exec()) {
  34. m_printer = dialog.printer();
  35. printerThread.start();
  36. if (dialog.printRange() == QAbstractPrintDialog::AllPages)
  37. emit printStarted(m_printer, m_document, 1, m_document->numPages());
  38. else if (dialog.printRange() == QAbstractPrintDialog::PageRange)
  39. emit printStarted(m_printer, m_document, dialog.fromPage(), dialog.toPage());
  40. printerThread.quit();
  41. printerThread.wait();
  42. }
  43.  
  44. return true;
  45. }
  46.  
  47. void DocumentPrinterWorker::printDocument(QPrinter *printer, Document *document, int fromPage, int toPage)
  48. {
  49. if (!printer && !document)
  50. return;
  51.  
  52. printer->setResolution(300);
  53. printer->setPageMargins(0,0,0,0,QPrinter::Point);
  54.  
  55. QPainter painter(printer);
  56. for (int i=fromPage; i<=toPage; i++) {
  57. QImage image("./images/logo.png");
  58. painter.drawImage(0,0, image);
  59. document->render(&painter, i, QRectF(0, 0, printer->width(), printer->height()));
  60. if (i < toPage)
  61. printer->newPage();
  62. }
  63. painter.end();
  64. }
To copy to clipboard, switch view to plain text mode 

sorry, i'm not good at english.