【发布时间】:2015-05-17 19:39:58
【问题描述】:
我试图在同一页面上显示一个 QTextTable 和一些我正在使用 QPainter 创建的文本。当我在 QPainter 上方有 QTextTable 时,唯一打印的是表格,但是当我在 QTextTable 上方有 QPainter 时,甚至没有页码。如何同时显示 QTextTable 和文本?
QPrinter Print(QPrinter::HighResolution);
Print.setPaperSize(QPrinter::A4);
Print.setOrientation(QPrinter::Landscape);
Print.setDuplex(QPrinter::DuplexAuto);
Print.setOrientation(QPrinter::Portrait);
Print.newPage();
QPrintDialog Printdialog(&Print);
Printdialog.setWindowTitle("Print");
Printdialog.exec();
QPainter painter;
QRect rect(0,0,250,250);
painter.drawText(100, 100, "Test");
painter.begin(&Print);
QTextCursor cursor(ui->textBrowser->textCursor());
cursor.movePosition(QTextCursor::Start);
QTextTable *table = cursor.insertTable(ui->tableWidget_Invoice->rowCount() +1, 5);
table->cellAt(0,0).firstCursorPosition().insertText("Product Code");
table->cellAt(0,1).firstCursorPosition().insertText("Product Description");
table->cellAt(0,2).firstCursorPosition().insertText("Qty");
table->cellAt(0,3).firstCursorPosition().insertText("Unit Price");
table->cellAt(0,4).firstCursorPosition().insertText("Total Price");
for(int x = 0; x<ui->tableWidget_Invoice->rowCount(); x++) //Insert Contents of Form Table Into Printout Table
{
table->cellAt(x+1,0).firstCursorPosition().insertText(ui->tableWidget_Invoice->item(x,2)->text());
table->cellAt(x+1,1).firstCursorPosition().insertText(ui->tableWidget_Invoice->item(x,1)->text());
table->cellAt(x+1,2).firstCursorPosition().insertText(ui->tableWidget_Invoice->item(x,0)->text());
table->cellAt(x+1,3).firstCursorPosition().insertText(ui->tableWidget_Invoice->item(x,3)->text());
table->cellAt(x+1,4).firstCursorPosition().insertText(ui->tableWidget_Invoice->item(x,4)->text());
}
ui->textBrowser->print(&Print);
【问题讨论】: