Q打印表格和文本
QPrinter Print Table And Text
我试图在同一页面上显示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);
您所要做的就是不是从小部件打印,您必须将其渲染给Qpainter。 您将使用的代码如下。
double xscale = Print.pageRect().width()/double(ui->textBrowser->width());
double yscale = Print.pageRect().height()/double(ui->textBrowser->height());
double scale = qMin(xscale, yscale);
painter.translate(Print.paperRect().x() + Print.pageRect().width()/2,
Print.paperRect().y() + Print.pageRect().height()/2);
painter.scale(scale, scale);
painter.translate(-width()/2, -height()/2);
painter.drawText(10,10, "TEST");
ui->textBrowser->render(&painter);
相关文章:
- 文本文件中的单词链表
- 从命令行c++发送文本文件名
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 2D数组来自文本输入,中间有空格
- 如何将内容数组写入文本文件?
- 无法通过空白将文本文件行分隔为矢量
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- C++将文本文件中的数据读取到结构数组中
- 在指针的帮助下,文本文件中单词的频率
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 将值从二维数组输出到文本文件
- 如何在c++中从文本文件中逐行读取整数
- 如何创建一个QTableWidgetItem,用长文本右对齐,左边有省略号
- 从文本文件中读取时钟时间和事件时间并进行处理
- 如何从文本文件中读取值和数组
- 如何在C++中确定文本文件中的元素是字符还是数字
- 如何根据单词在文本中出现的概率输出单词
- 从文本文件中读取尺寸和表格内容后显示表格
- Qt c++ 在表格视图中换行文本(富文本)
- Q打印表格和文本