我想創建一個Windows應用程序(但最終也將其移植到linux上,因此如果可能,交叉兼容性很重要),它將從網絡攝像頭拍攝圖片,並且可以不使用一個printDialog框,但我在選擇紙張大小時遇到問題。我希望紙張大小設置爲A6格式的4「x 6」,但是當我使用setPaperSize(QtPrinter :: A6)時,它似乎默認爲字母格式。雖然並不總是默認使用所有打印機,但看起來每個打印機都以不同的方式處理命令,但大多數默認爲letter。我相信這可能是Qt和打印機與驅動程序兼容性的問題。Qt QPrinter setPaperSize不能正常工作
我的問題是:有沒有人知道一種方法將打印機設置爲4「6」在QT應該與所有打印機一起工作?
我的代碼如下所示。
void MainWindow::Print() {
QPainter painter;
QPrinter *printer = new QPrinter(QPrinter::HighResolution);
printer->setPaperSize(QPrinter::A6);
if (!painter.begin(printer)) {
qWarning("Failed to open file");
return;
}
painter.fillRect(QRectF(QPointF(108,118),QPointF(110+352, 120+352)), Qt::black);
painter.fillRect(QRectF(QPointF(109,119),QPointF(109+352, 119+352)), Qt::white);
ui->graphicsView->scene()->render(&painter, QRectF(110,120, 350, 350), QRectF(0,0, ui->graphicsView->scene()->width(), ui->graphicsView->scene()->height()), Qt::IgnoreAspectRatio);
painter.drawText(110, 110, "Test");
painter.end();
}
我試圖調整大小的紙張
printer->setPaperSize(QPrinter::A6)
printer->setPageSize(QPrinter::A6)
printer->setPaperSize(QSizeF(4.0, 6.0), QPrinter::Inch)
這些都不似乎工作如下。如果有人可以幫我解決這個問題,我會非常大膽
我想我可能最終不得不這樣做,但希望有人知道一個更簡單的解決方案。儘管謝謝你的幫助 – Heheas 2013-02-15 20:27:24