QPainter :: begin():返回false

nermineslimane

所以我使用的是QT 5.15.2,我想在这里做的就是将QTableView的内容打印或PDF转换为PDF文件,这是我的代码

 void ManageTeachers::on_print_clicked() {

    QPdfWriter pdf("C:");
    QPainter painter(&pdf);

        int i = 4000;
            painter.setPen(Qt::blue);
            painter.setFont(QFont("Arial", 30));
            painter.drawText(1100,1200,"List of teachers");
            painter.setPen(Qt::black);
            painter.setFont(QFont("Arial", 15));
           
            painter.drawRect(100,100,7300,2600);
            painter.drawRect(0,3000,9600,500);
            painter.setFont(QFont("Arial", 9));
            painter.drawText(200,3300,"CIN");
            painter.drawText(1300,3300,"First name");
            painter.drawText(2100,3300,"last name");
            painter.drawText(3200,3300,"phone");
            painter.drawText(5300,3300,"email");

            painter.drawText(5300,3300,"salary");
            QSqlQuery query;
            query.prepare("select * from teacher");
            query.exec();
            while (query.next())
            {
                painter.drawText(200,i,query.value(0).toString());
                painter.drawText(1300,i,query.value(1).toString());
                painter.drawText(2200,i,query.value(2).toString());
                painter.drawText(3200,i,query.value(3).toString());
                painter.drawText(4500,i,query.value(4).toString());
               i = i + 500;
            }
            int reponse = QMessageBox::question(this, "Génerer PDF", "<PDF Enregistré>...Vous Voulez Affichez Le PDF ?", QMessageBox::Yes |  QMessageBox::No);
                if (reponse == QMessageBox::Yes)
                {

                    painter.end();
                }
                if (reponse == QMessageBox::No)
                {
                     painter.end();
                } }

问题是在控制台中我收到这些错误

QPainter::begin(): Returned false
QPainter::setPen: Painter not active
QPainter::setFont: Painter not active
QPainter::setPen: Painter not active
QPainter::setFont: Painter not active
QPainter::drawRects: Painter not active
QPainter::drawRects: Painter not active
QPainter::setFont: Painter not active
QPainter::end: Painter not active, aborted

有什么帮助吗?我添加了QT + = printsupport多媒体

jdean300
QPdfWriter pdf("C:");
QPainter painter(&pdf);

这是非常可疑的。如果您查阅文档,请QPdfWriter注意第一个参数应该是文件名。“ C:”不是文件名。您需要传递要写入的文件名,例如:

QString filename("C:/my_file.pdf");
QPdfWriter pdf(filename);
QPainter painter(&pdf);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

QPainter::begin 在调试模式下使程序崩溃

来自分类Dev

“QPainter::begin: Paint device returned engine == 0, type: 1” with PySide

来自分类Dev

QPainter。画线

来自分类Dev

QPainter 设备返回引擎 == 0,类型:3(在重新定义的paint()方法中)

来自分类Dev

更改QPainter的原点

来自分类Dev

使用QPainter平滑绘制

来自分类Dev

QPainter在时钟上画数字

来自分类Dev

更改QPainter的原点

来自分类Dev

QPainter 不绘制

来自分类Dev

QT 5.7 QPainter线路要求

来自分类Dev

获取QPainter的可见区域

来自分类Dev

使用QPainter绘制富文本

来自分类Dev

多次使用QPainter和QPaintDevice

来自分类Dev

QPainter旋转。在哪里翻译?

来自分类Dev

在PyQt GUI中集成QPainter

来自分类Dev

QPainter在QScrollArea内绘制线条

来自分类Dev

使用QPainter缓慢更新QQuickPaintedItem

来自分类Dev

获取QPainter的可见区域

来自分类Dev

QPainter.drawText()SIGSEGV分段错误

来自分类Dev

Python PyQt4 Qpainter活动消息

来自分类Dev

QPainter :: drawText在Linux上的性能不佳

来自分类Dev

QPainter.drawText斜体写在矩形外部

来自分类Dev

How to align QPainter drawText around a point, not a rectangle?

来自分类Dev

QPainter或QLabel绘制QPixmap的成本较低

来自分类Dev

QPixmap / QPainter显示黑色窗口背景

来自分类Dev

QPainter删除以前绘制的形状

来自分类Dev

使用QPainter时对象是透明的

来自分类Dev

QPainter中重叠的半透明QRectangles

来自分类Dev

QPainter.drawText斜体写在矩形外部