-1
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 中,打印工作正常(打印工作正常),但在其他电脑中(一台使用 win 8.1,一台使用 win 7)无法启动(打印无法启动,打印队列为空)我不'不明白为什么,我没有得到任何错误。

我用:

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

在 .pro 中:

QT += printsupport
QTPLUGIN += windowsprintersupport

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

4

2 回答 2

1

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

于 2015-05-01T01:53:39.207 回答
0

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

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

于 2021-07-09T18:57:31.390 回答