• 5346阅读
  • 2回复

关于Qt打印的问题   希望大家指点,代码以贴出 [复制链接]

上一主题 下一主题
离线princeholy
 
只看楼主 倒序阅读 楼主  发表于: 2012-01-05
目的:自定义一个按钮,打开网页后,通过打印预览,实现网页页面的打印。

测试: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);
}
离线princeholy
只看该作者 1楼 发表于: 2012-01-05
自己在顶一个  怎么没人在线救命哈 呵呵  耐心哦

离线princeholy
只看该作者 2楼 发表于: 2012-01-10
来个人帮帮忙吧
快速回复
限100 字节
 
上一个 下一个