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}")
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}")