Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QtWebkit:打印问题:打印页上没有图像_C++_Qt_Printing - Fatal编程技术网

C++ QtWebkit:打印问题:打印页上没有图像

C++ QtWebkit:打印问题:打印页上没有图像,c++,qt,printing,C++,Qt,Printing,我的应用程序中有一个webkit小部件,您可以打印它。它打印得很好,只是打印时没有图像,即使屏幕上有图像 以下是打印代码: void MainWindow::printPage() { QPrinter printer; printer.setPageSize(QPrinter::A4); printer.setPageMargins(10, 10, 10, 10, QPrinter::Millimeter); printer.setColorMode(QPrin

我的应用程序中有一个webkit小部件,您可以打印它。它打印得很好,只是打印时没有图像,即使屏幕上有图像

以下是打印代码:

void MainWindow::printPage() {
    QPrinter printer;
    printer.setPageSize(QPrinter::A4);
    printer.setPageMargins(10, 10, 10, 10, QPrinter::Millimeter);
    printer.setColorMode(QPrinter::Color);
    QPrintDialog* dialog = new QPrintDialog(&printer, this);
    if (dialog->exec() == QDialog::Accepted)
    {
         this->webView->page()->mainFrame()->print(&printer);
    }
}
QWebSettings::globalSettings()->setAttribute(QWebSettings::PrintElementBackgrounds, true);
我也或多或少忽略设置为A4,默认为字母,所以我必须在打印机对话框弹出窗口中更改它,否则我必须使用打印机按钮强制打印。不管怎样,结果都是错的

有人能给我一些建议吗?我确信我只是错过了一些简单的东西


/Jason

在打印之前,请尝试将
QWebSettings::PrintElementBackgrounds
属性设置为true:

void MainWindow::printPage() {
    QPrinter printer;
    printer.setPageSize(QPrinter::A4);
    printer.setPageMargins(10, 10, 10, 10, QPrinter::Millimeter);
    printer.setColorMode(QPrinter::Color);
    QPrintDialog* dialog = new QPrintDialog(&printer, this);
    if (dialog->exec() == QDialog::Accepted)
    {
         this->webView->page()->mainFrame()->print(&printer);
    }
}
QWebSettings::globalSettings()->setAttribute(QWebSettings::PrintElementBackgrounds, true);
您还可以在QWebView特定设置中设置此设置,
QWebView::settings()