2017-08-12 267 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

相关问题