#include #include #include #include #include #include #include #include class WebWindow : public QWidget { public: WebWindow(QWidget* parent) : QWidget(parent) { QVBoxLayout* lay = new QVBoxLayout(this); setLayout(lay); view_ = new QWebEngineView(this); view_->load(QString("http://www.google.com")); lay->addWidget(view_); QPushButton* print = new QPushButton(tr("Print")); connect(print, &QPushButton::clicked, this, &WebWindow::print); lay->addWidget(print); } private: QWebEngineView* view_; void print() { QPrinterInfo dev = QPrinterInfo::defaultPrinter(); QPrinter printer(dev, QPrinter::ScreenResolution); printer.setCopyCount(2); QPrintDialog d(&printer, this); if (d.exec() == QDialog::Accepted) { QEventLoop loop; connect(view_, &QWebEngineView::printFinished, [&](bool s) { loop.quit(); }); view_->print(&printer); loop.exec(); } } }; int main(int argc, char *argv[]) { QApplication a(argc, argv); QMainWindow mw; WebWindow ww(&mw); mw.setCentralWidget(&ww); mw.show(); return a.exec(); }