черный прямоугольник вместо содержимого QtextDocument в выводе PDF-файла QPrinter - PullRequest
1 голос
/ 19 октября 2019

Так что мне нужна граница в QtextFrame в формате PDF (вывод PDF в формате QPrinter). Ниже приведен код, который я использовал

#include <QPainter>
#include <QTextFrameFormat>
#include <QTextCursor>
#include <QTextFrame>
#include <QTextEdit>
#include <QPrinter>

int main(int argc, char *argv[]) {
    QApplication a(argc, argv);

    QTextDocument doc;
    QPixmap map(1024, 1024);
    map.fill(Qt::white);
    QPainter p;
    p.begin(&map);
    p.fillRect(QRect(0,0, 4, map.height()), QBrush(Qt::red));
    p.end();

    QTextFrameFormat frameFormat;
    QBrush bruh(map);
    bruh.setColor(Qt::transparent);
    frameFormat.setBackground(bruh);
    frameFormat.setPadding(6);
    auto cur = new QTextCursor(&doc);
    auto frame = cur->insertFrame(frameFormat);
    auto curf = new QTextCursor(frame);
    curf->insertText("Hello this is qt program!");

    QPrinter pdf;
    pdf.setOutputFileName("E:\\test.pdf");
    pdf.setOutputFormat(QPrinter::PdfFormat);
    doc.print(&pdf);

    QTextEdit edt;
    edt.setDocument(&doc);
    edt.show();

    return a.exec();
}

Но вывод pdf отличается от того, что показан в QTextEdit
pdf (только одна черная линия без содержимого) enter image description here

Вывод текста, который мне нужен
enter image description here

...