2017-08-12 271 views
1

我一直在試圖解決Qt打印問題2天沒有多少運氣。我有一個非常簡單的程序,它應該從QTextEdit中打印文本。我有Qt Creator 4.3.0基於Qt 5.8.0(MSVC 2015,32位)在Windows 7 64位上運行。如何解決QT QPrintDialog打印機初始化錯誤?

我在項目文件中添加printsupport,

QT  += core gui sql printsupport 

我在頭文件中添加引用,

#include <QWidget> 
#include <QPrinter> 
#include <QPrintDialog> 
#include <QPrinterInfo> 
#include <QDialog> 
#include <QFile> 
#include <QMessageBox> 
#include <QTextStream> 

最後,我添加按鈕點擊()插槽C++文件。

void MyClass::on_btnPrint_clicked() 
{ 
    QPrinter printer; 
    QPrintDialog printDialog(&printer, this); 
    if (printDialog.exec() == QDialog::Accepted) { 
     ui->textEdit->print(&printer); 
    } 
} 

當我點擊在調試模式下打印按鈕,它給了我下面的錯誤,

QWin32PrintEngine::initialize: CreateDC failed() 

和下面的對話框顯示在Windows 7:

enter image description here

我已經有一個我的電腦上安裝了默認打印機。 我搜索了QT支持,但我找不到解決方案。這也沒有被報告爲一個錯誤。我很感謝你的幫助。

回答

0

我回答我自己的問題,因爲我找不到解決方案。最後,經過4天的鬥爭,我解決了這個問題。我只是重新安裝了QT,問題就消失了。現在QT正在與Windows進行通信(QWin32PrintEngine)。我不必更改我的代碼。我仍然不清楚爲什麼這個問題首先發生,我怎麼能阻止它。

0

檢查您的應用程序是否加載了「printsupport \ windowsprintersupport.dll」插件。如果缺少這個插件,QPrintDialog :: exec將立即返回。

+0

謝謝。重新安裝QT後,問題已解決。 – Gaurang

相關問題