Qt4 から Qt5 で問題が発生しています。私のアプリケーションでは、ユーザーが印刷ボタンをクリックすると、2 つのことが起こるはずです。 QPrintDialog は exec() を実行してから、接続されたプリンターに送信する必要があります。
開発マシンから起動するとダイアログが表示されます。アプリケーションはデプロイされたマシンで起動しますが、QPrintDialog は表示されず、ドキュメントは印刷されません。
印刷サポートを含めています。
QT += core gui network webkitwidgets widgets printsupport
Process Explorer を使用して、開発マシンでアプリケーションが使用する DLL を確認してきましたが、すべてが存在していると思います。私のアプリケーション バンドルには以下が含まれます。
- {myAppPath}\MyApp[MyApp.exe, Qt5PrintSupport.dll, ...]
- {myAppPath}\plugins\printsupport\windowsprintersupport.dll
- {myAppPath}\plugins\imageformats[ qgif.dll, qico.dll,qjpeg.dll, qmng.dll, qtga.dll, qtiff.dll, qwbmp.dll ]
以下は、関連するコード スニペットです。
void PrintableForm::printFile()
{
//Writes the PDF to disk in every environment
pdfCopy();
//Paper Copy only works on my dev machine
QPrinter paperPrinter;
QPrintDialog printDialog(&paperPrinter,this);
if( printDialog.exec() == QDialog::Accepted ) {
view->print(&paperPrinter);
}
this->accept();
}
私が最初に考えたのは、印刷時に関連する DLL が見つからないということです。これは、アプリケーション ファイル システムが正しくないことを意味しますが、別のファイル構造を示すものは何も見つかりませんでした。私は正しい軌道に乗っていますか、それともこのセットアップに何か問題がありますか?