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

Qt - Simple code QPrinter doesn't work on others pc

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的电脑上打印正常(打印正常),但在其他电脑上(一台win 8.1和一台win 7)打不开(打印打不开,打印队列是空的)我不明白为什么,我没有收到任何错误。

我使用:

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

并在 .pro 中:

QT += printsupport
QTPLUGIN += windowsprintersupport

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

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

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

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