從瀏覽器訪問鏈接時,有一個打印按鈕,當您單擊它時,將顯示功能打印。而且我不能在我的程序上做這個qwebview。我在Ubuntu 11.04上使用qt4.7.3。如何使用qt使用qwebview打印
1
A
回答
2
QWebView
有一個void print(QPrinter * printer) const
方法。要顯示打印對話框,您需要使用QPrintDialog
類。
您需要將QAction
或某些其他信號連接到顯示打印對話框的插槽,並將另一個插槽連接到對話框的accepted
信號。
class MyWindow : public QWidget {
Q_OBJECT
QWebView * m_webView;
QScopedPointer<QPrinter> m_printer;
...
Q_SLOT void showPrintDialog() {
if (!m_printer) m_printer.reset(new QPrinter);
QScopedPointer<QPrintDialog> dialog(new QPrintDialog(m_printer.data(), this));
dialog->setAttribute(Qt::WA_DeleteOnClose);
connect(dialog.data(), SIGNAL(accepted(QPrinter*)), SLOT(print(QPrinter*)));
dialog->show();
dialog.take(); // The dialog will self-delete
}
Q_SLOT void print(QPrinter* printer) {
m_webView->print(printer);
}
};
0
我以前the answer from Kuba Ober,並用它在我的項目如下:
的.ui
文件包含一個名爲「web視圖」 QWebView,你可以簡單地在QtCreator的設計模式創建此。
.cpp
文件
#include <QDialog>
#include <QPrinter>
#include <QPrintDialog>
namespace Ui {
class myclassname;
}
class myclassname : public QDialog
{
Q_OBJECT
public:
explicit myclassname(QWidget *parent = 0);
~myclassname();
private slots:
void print(QPrinter* printer);
void on_pushButton_print_clicked();
private:
Ui::myclassname *ui;
QScopedPointer<QPrinter> m_printer;
};
的.h
#include "myclassname.h"
#include "ui_myclassname.h"
myclassname::myclassname(QWidget *parent) :
QDialog(parent),
ui(new Ui::myclassname)
{
ui->setupUi(this);
ui->webView->load(QUrl("https://stackoverflow.com/questions/21260463/how-to-print-using-qwebview-using-qt"));
}
myclassname::~myclassname()
{
delete ui;
}
void myclassname::print(QPrinter* printer)
{
ui->webView->print(printer);
}
void myclassname::on_pushButton_print_clicked()
{
if (!m_printer) m_printer.reset(new QPrinter);
QScopedPointer<QPrintDialog> dialog(new QPrintDialog(m_printer.data(), this));
dialog->setAttribute(Qt::WA_DeleteOnClose);
connect(dialog.data(), SIGNAL(accepted(QPrinter*)), SLOT(print(QPrinter*)));
dialog->show();
dialog.take(); // The dialog will self-delete
}
謝謝@KubaOber
相關問題
- 1. 如何打印到使用JavaScript和QWebview
- 2. 如何使用QT打印prn文件?
- 3. 如何使用Qt打印Unicode字符?
- 4. QWebView:打印問題
- 5. QWebView不使用Qt 4.7加載https://www.gmail.com?
- 6. 使用帶Qt靜態構建的QWebView
- 7. 使用Qt打印PDF文件
- 8. 在Qt中,如何確定網頁的電子郵件或打印圖標是否已使用QWebView單擊?
- 9. 如何使用QT打印來自打印機的圖像文件
- 10. 如何使用打印機
- 11. 如何使用php打印$
- 12. 如何使用AWK打印?
- 13. Gdb,如何使用打印?
- 14. 如何打印使用Tcl
- 15. 如何使用PCL打印
- 16. 如何使用JQuery打印
- 17. 硬件直接使用Qt打印而不使用QPrintDialog
- 18. Qt:如何打印QFile?
- 19. 使用Qt C++ QWebView使GUI運行緩慢。
- 20. 使用Applescript打開打印隊列。 (或者:如何使用AppleScript打印PDF?)
- 21. QWebView內存使用
- 22. 如何使用QT C++打開SVG
- 23. 如何使用Qt打開ROS包?
- 24. 如何使用打印機API在JAVA中打印用於打印的文本?
- 25. 如何使用QWebView顯示html。蟒蛇?
- 26. 如何強制QWebView使用SSLv3?
- 27. 在Groovy中,如何使用city()方法打印時不使用打印方法
- 28. 如何使用Qt
- 29. 如何使用Qt
- 30. Qt QWEBview JavaScript回調
我發現我的QWebView的背景留下 '灰色',而這種不必要的使用墨水。我通過在構造函數中添加'ui-> webView-> setStyleSheet(「background-color:white」)來解決問題,就在行ui-> webView-> load(QUrl ...) – Wim