私は次のコードを持っています:
void Test1::on_pushButton_1_clicked() // print the information
{
QPrinter printer(QPrinter::HighResolution);
printer.setCreator("Me");
printer.setDocName("Print");
printer.setPaperSize(QPrinter::A4);
QPrintPreviewDialog *pd = new QPrintPreviewDialog(&printer);
connect(pd,SIGNAL(paintRequested(QPrinter*)),this,SLOT(print(QPrinter*)));
pd->exec();
}
void Test1::print(QPrinter *p)
{
QPainter painter(p);
painter.setPen(Qt::blue);
painter.setRenderHints(QPainter::Antialiasing |
QPainter::TextAntialiasing |
QPainter::SmoothPixmapTransform, true);
painter.drawText(100, 100, "Name: ");
painter.drawText(300, 100, "SuperMan");
}
1クラス[1ダイアログ]のみの実験プロジェクトで動作しますが、メインプロジェクトでは、ボタンを押すとプレビューが正常に開始されますが、「印刷」ボタンを押すとプログラムがクラッシュ。「プログラムが動作を停止しました。ウィンドウが解決策を探します」などと表示されます。私のプログラムには多くのクラスとダイアログがあると言わざるを得ません。ポインターに問題があることはほぼ確実です。経験が少ないので、自分の間違いがどこにあるかを見つけることができません。私のコードを見て、そのプロジェクトを完了するのにあと 2 日しかないので、どうすればよいか教えてください。よろしくお願いします。