Qt - 简单代码QPrinter在其他PC上不起作用

时间:2015-04-30 10:15:46

标签: c++ qt qpainter qprinter

QPrinter printer(QPrinter::HighResolution);         

    printer.setPageSize(QPrinter::A4);
    printer.setOrientation(QPrinter::Portrait);
    printer.setPageMargins (15,15,15,15,QPrinter::Millimeter);
    printer.setFullPage(false);
    printer.setOutputFormat(QPrinter::NativeFormat);                     


    QPainter painter(&printer);                           

    painter.setFont(QFont("Tahoma",8));
    painter.drawText(200,200,"Test prova prova");
    painter.end();

在带有QT的PC中,打印工作正常(打印工作正常),但在其他pc(一个win 8.1和一个win 7)无法启动(打印无法启动,打印队列为空)我不明白为什么,我没有得到任何错误。

我用:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPrinter>
#include <QPainter>

和.pro:

QT += printsupport
QTPLUGIN += windowsprintersupport

当然,文件夹中存在dll“Qt5PrintSupport”。 对于noob问题我很抱歉,但我不明白我做错了什么。

2 个答案:

答案 0 :(得分:1)

您需要目标计算机上的windowsprintersupport.dll插件。只有在将Qt静态链接到应用程序时,将Qt用作DLL才能设置QTPLUGIN。

答案 1 :(得分:0)

如果您使用的是 CMake 项目,您可以使用 Qt5::QWindowPrinterSupportPlugin 配置复制到目标目录。

get_target_property(_loc Qt5::QWindowsPrinterSupportPlugin LOCATION) configure_file(${_loc} Release/printsupport/windowsprintersupport.dll COPYONLY) message("copied file: ${_loc}")