アカウント名:
パスワード:
対策できました。
http://blog.soramimi.jp/?p=189 [soramimi.jp]
・ 用紙座標とページ座標 [qt-project.org]があって、QPainterで描画する際には、ページ座標が用いられる。・ Qt5.3.0未満では、用紙座標の原点とページ座標の原点が共に(0, 0)だった。・ Qt5.3.0では、ページ座標の原点にオフセットが付いてている。
そんなわけで、painter.setTransformで、明示的に座標変換する必要があるようです。
それはそれとして、QPageLayout::setMode() では解決できないかな?
layout.setMode(QPageLayout::FullPageMode);ですね。今まで知りませんでした。
期待通りに動作しました。もうしばらく検証してみますが、たぶんこれが最もスマートで最良の解決策だと思います。QTransformとか面倒なもの使わなくて済むし、素晴らしいです。ありがとうございます。
void MainWindow::on_pushButton_clicked(){ QPrintDialog dlg(this); if (dlg.exec() == QDialog::Accepted) { QPrinter *printer = dlg.printer(); QPageLayout layout = printer->pageLayout(); layout.setMode(QPageLayout::FullPageMode); printer->setPageLayout(layout); printer->setPaperSize(QPrinter::A4); printer->setOrientation(QPrinter::Portrait); printer->setPageMargins(0, 0, 0, 0, QPrinter::Millimeter); printer->setResolution(254); QPainter painter(printer); painter.setPen(QPen(Qt::black, 20)); painter.drawEllipse(0, 0, 2100, 2970); }}
void MainWindow::on_pushButton_clicked(){ QPrintDialog dlg(this); if (dlg.exec() == QDialog::Accepted) { QPrinter *printer = dlg.printer();
QPageLayout layout = printer->pageLayout(); layout.setMode(QPageLayout::FullPageMode); printer->setPageLayout(layout);
printer->setPaperSize(QPrinter::A4); printer->setOrientation(QPrinter::Portrait); printer->setPageMargins(0, 0, 0, 0, QPrinter::Millimeter); printer->setResolution(254);
QPainter painter(printer); painter.setPen(QPen(Qt::black, 20)); painter.drawEllipse(0, 0, 2100, 2970); }}
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
開いた括弧は必ず閉じる -- あるプログラマー
解決しました (スコア:1)
対策できました。
http://blog.soramimi.jp/?p=189 [soramimi.jp]
・ 用紙座標とページ座標 [qt-project.org]があって、QPainterで描画する際には、ページ座標が用いられる。
・ Qt5.3.0未満では、用紙座標の原点とページ座標の原点が共に(0, 0)だった。
・ Qt5.3.0では、ページ座標の原点にオフセットが付いてている。
そんなわけで、painter.setTransformで、明示的に座標変換する必要があるようです。
Re: (スコア:0)
それはそれとして、QPageLayout::setMode() では解決できないかな?
できました! (スコア:1)
layout.setMode(QPageLayout::FullPageMode);
ですね。今まで知りませんでした。
期待通りに動作しました。もうしばらく検証してみますが、
たぶんこれが最もスマートで最良の解決策だと思います。
QTransformとか面倒なもの使わなくて済むし、素晴らしいです。
ありがとうございます。