Я пробовал десятки различных реализаций. Сложная проблема заключается в том, что диалог печати будет отображаться и работать корректно на моей машине разработки, но когда я создаю файл .msi и развертываю на другой компьютер, кнопка печати фактически ничего не делает. Он должен отображать график с информацией из соответствующего ui, и я исключил, что он использовал библиотеку qwt неправильно, потому что (хотя я, похоже, не могу правильно ее установить на любой другой машине, кроме машины dev) графики, созданные с использованием qwt-библиотек, отображаются правильно после установки программы, просто кнопка печати работает.Не удается получить QtPrintSupport для работы
Вот важные строки в моем .pro файл, который будет относиться к любым вопросам печати, увязывания или возможных, насколько я могу сказать:
QT += core gui sql printsupport network
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = static-control-panel
TEMPLATE = app
symbian: LIBS += -lftd2xx
else:unix|win32: LIBS += -L$$quote($$PWD/lib/) -lftd2xx \
-L$$quote($$PWD/lib/) -lqwt
INCLUDEPATH += $$quote($$PWD/include)
DEPENDPATH += $$quote($$PWD/include)
CONFIG += qwt
Внутри .cs файл, который имеет фактическое кнопку печати I попробовал #include <QtPrintSupport>
, #include "QtPrintSupport"
, #include "QtPrintSupport/QPrintDialog"
, #include <QtPrintSupport/QPrintDialog>
и любой иная возможная версия.
Я строю проект с использованием WiX и свечи и света, чтобы его построить. WiX - это простой язык разметки, который будет определять, какие файлы включать в файл .msi, а включение PrintSupport идентично любой другой включенной библиотеке.
Я также пробовал AdvancedInstaller и получил те же результаты.
Я попытался заменить файлы DLL в каталоге установки после того, как приложение было установлено на другой машине с более новыми версиями DLL-файлов и с теми же старыми версиями от dev-устройства, в случае, t превращая его в .msi. Используя старые .dlls, я получаю ту же самую кнопку без ответа. Использование новых .dll приведет к тому, что приложение сообщит, что не может найти правильную версию .dll, и это сработает, это особенно актуально, когда я заменяю qwindows.dll, я думаю, что .dlls не совместимы с обратной совместимостью?
Я ничего не вижу, указав версию DLL-файлов, которые будут включены в файл WiX, когда я его создам. Может ли это быть чем-то связанным с версиями qwt и QtPrintSupport? Любое понимание этой проблемы было бы чрезвычайно оценено, и если что-то неясно или больше примеров кода или информации, пожалуйста, не стесняйтесь спрашивать и благодарите вас за ваше рассмотрение.
Вау наконец! ProcMon сделал это, спасибо, что предложил такой отличный инструмент. Он смог указать на эту простую проблему, которая преследовала меня в течение нескольких месяцев ... так же осторожно, как и я, папка установки для функции печати была поддержкой принтеров, в то время как программа искала printsupport (no 'er'), Я переименовал папку, и она мгновенно работала на машинах, на которых была установлена предыдущая версия. Еще раз спасибо за предложение, и любой, у кого есть подобные проблемы в будущем, ProcMon или другие подобные инструменты должны использовать для определения недостающих проблем с dll. – JordanSchiller
Я рад, что сообщество переполнения стека помогло вам. –