• 4279阅读
  • 1回复

[提问]QWebView打印不了 [复制链接]

上一主题 下一主题
离线williamoj
 

只看楼主 倒序阅读 楼主  发表于: 2012-02-18
大家好,我第一次接触Qt的打印功能,遇到了个比较郁闷的问题,请大家帮帮忙,谢谢。


首先,我查了下Google,发现用QTextDocument+QTextBrowser可以print出东西。我是需要打印一份带CSS的HTML档,发现QTextBrowser不能支持所有的CSS格式,放弃了。


接着,我尝试使用QWebView打印,结果打不出来。打印机显示文档名称:document1,状态:正在等待。就一直停着不动了。后来加了QPrintPreviewDialog,在预览窗口也能看得到东西,但就是打印不出来,疯了。


贴出代码:
  1. SomeDialog::SomeDialog()
  2. {
  3.     ......
  4.     mWebView = new QWebView(this);
  5.     connect(mWebView, SIGNAL(loadFinished(bool)), this, SLOT(webLoadFinished(bool)));
  6. }
  7. void SomeDialog::clickPrint(void)
  8. {
  9.     QString strHtml = "...some_html_with_css...";
  10.     mWebView->setHtml(strHtml);
  11. }
  12. void SomeDialog::webLoadFinished(bool _succ)
  13. {
  14.     if (mWebView == NULL || !_succ)
  15.         return;
  16.     QPrinter* pPrinter = new QPrinter(QPrinter::ScreenResolution);
  17.     QPrintPreviewDialog* pPreviewDlg = new QPrintPreviewDialog(pPrinter, this);
  18.     connect(pPreviewDlg, SIGNAL(paintRequested(QPrinter*)), this, SLOT(printPreview(QPrinter*)));
  19.     if (pPreviewDlg->exec() == QDialog::Accepted)
  20.         mWebView->print(pPrinter);
  21.     delete pPreviewDlg;
  22.     delete pPrinter;
  23. }
  24. void SomeDialog::printPreview(QPrinter* _printer)
  25. {
  26.     mWebView->print(_printer);
  27. }

本地环境:i7-2630QM  4G  GT555M  Windows 7 x86  Qt_4.7.2
离线williamoj

只看该作者 1楼 发表于: 2012-02-19
问题解决,更新到Qt_4.7.4就可以了!
快速回复
限100 字节
 
上一个 下一个