目的:自定义一个
按钮,打开网页后,通过打印预览,实现网页页面的打印。
测试:1:load
www.baidu.com会出现百度重影
问题,如图所示:并且打印出来的是一张白纸 只有 百度
对话框的一个矩形框
没有文字 。。。。。有问题 不知道为什么
2:load
www.qq.com预览只有网页的一小
部分 如图,打印同样存在问题,我把代码贴出来 大家帮我看看吧 ,谢谢各位了 这个做完就能放假回家了,希望大家指点指点 或者加QQ讨论 113132715
代码如下:
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF8"));
ui->setupUi(this);
this->showMaximized();
view = new
QWebView(this);
view->settings()->setAttribute(QWebSettings::JavascriptEnabled, true);
view->settings()->setAttribute(QWebSettings::JavaEnabled, true);
view->settings()->setAttribute(QWebSettings::JavascriptCanOpenWindows, true);
view->settings()->setAttribute(QWebSettings::AutoLoadImages, true);
view->settings()->setAttribute(QWebSettings::LinksIncludedInFocusChain, true);
view->load(QUrl("http://www.baidu.com"));
view->show();
setCentralWidget(view);
QPushButton *printButton = new QPushButton(tr("打印预览"),this);
printButton->setGeometry(100,100,100,60);
printButton->show();
connect(printButton,SIGNAL(clicked()),this,SLOT(doPrint()));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::doPrint()
{
QPrinter *printer = new QPrinter();
printer->setPageSize(QPrinter::A4);
printer->setOrientation(QPrinter::Portrait);
QPrintPreviewDialog preview(printer,view);
connect(&preview, SIGNAL(paintRequested(QPrinter *)),this,SLOT(printPreview(QPrinter *)));
preview.exec();
}
void MainWindow::printPreview(QPrinter *printer)
{
view->print(printer);
}