で遭遇しないエラーを与えるQPrinter、QPrintDialogは、QPainterのとQPrintDialogオブジェクトは以下のように定義されて使用される:ImageViewerの例ではコード例
#ifndef QT_NO_PRINTER
QPrinter printer;
#endif
と
QPrintDialog dialog(&printer, this);
A QPainterのオブジェクトは、次に初期化されますQPrinter(プリンタ)を使用します。私は私の機能で同じコードを使用しようとすると
、それは次のようになります。
void imageviewer::print()
{
...
#ifdef QT_NO_PRINTER
QPrinter printer(this); //ERROR 1
QPrintDialog dialog(&printer, this);//ERROR 2 and 3
if (dialog.exec()) //ERROR 4
{
//do the painting
}
#endif
}
エラーは以下のとおりです。これらのエラーがある理由を私は理解することはできませんよ何
1. variable 'QPrinter printer' has initializer but incomplete type
2. 'QPrintDialog' was not declared in this scope
3. Expected ';' before 'dialog'
4. 'dialog' was not declared in this scope
ですコードで使用しているときに発生しますが、例では使用しません。
友人が指摘したように、適切な#includeファイルを使用し、 'printer'と 'dialog'がその例のどこにも触れていないことを確認しました。
は、両方の方法は、#のif-elseを入力していない後者の場合コントロールでの#ifdefと#ifndefの..で、つまりそれをやりました –
QT_NO_PRINTERはプリプロセッサディレクティブです。プロジェクトから削除する必要があります。 QT SDKがプリンタサポートでコンパイルされている場合は、うまくいくはずです。それ以外の場合は、 "QPrinterの未解決の外部シンボル"エラーが発生します。印刷したい場合は、まずこのディレクティブをプロジェクトから削除してください! –
ディレクティブを削除した後も同じエラーが発生します。 –