打印数据QTextDocument和QPainter
Print data QTextDocument and QPainter
如何使用QTextDocument
打印html
数据?
我的代码,但返回错误:
QString text_x = "Hello World!";
QTextDocument *doc = new QTextDocument(this);
doc->setUndoRedoEnabled(false);
doc->setHtml("<p><span style="color:#000000; font-weight:600">"+text_x+"</span></p>");
doc->setTextWidth(width());
doc->setUseDesignMetrics(true);
doc->setDefaultTextOption(QTextOption(Qt::AlignHCenter));
QPainter *p = new QPainter(this);
p->setRenderHint(QPainter::Antialiasing, true);
p->begin(this);
doc->drawContents(p);
p->end();
错误:
QPainter::pen: Painter未激活QPainter::setPen:画家未激活QPainter::pen:画家未激活QPainter::setPen:画家未激活QPainter::setPen:画家未激活QPainter::setPen:画家未激活QPainter::setPen:画家未激活QPainter::setPen:画家未激活QPainter::setPen:画家未激活QPainter::还原:不平衡保存/还原QPainter::end:画家未激活,中止
正如我在评论中所写的:你在paintEvent
之外的小部件上绘图,这是一个问题。
以下是您所要求的示例代码:
class MyDocWidget : public QWidget {
Q_OBJECT
public:
explicit MyDocWidget(QWidget * parent = 0, Qt::WindowFlags f = 0)
: QWidget(parent, f)
{
doc = new QTextDocument(this);
doc->setUndoRedoEnabled(false);
}
public slots:
void setHtml(const QString &html) {
doc->setHtml(html);
update();
}
protected:
void paintEvent(QPaintEvent * event) {
QPainter p(this);
p.setRenderHint(QPainter::Antialiasing, true);
doc->drawContents(&p);
}
void resizeEvent(QResizeEvent * event) {
QWidget::resizeEvent(event);
doc->setTextWidth(width());
update();
}
private:
QTextDocument *doc;
}
相关文章:
- QPainter 将 QBrush 设置为 在 QT/C++ 中绘制文本
- QQuickPaintedItem 使用 QPainter 缓慢更新
- 警告 QPainter 内部油漆事件
- 如何使用Qpainter在Qt中绘制棋盘
- QPainter的QWidget滚动条
- Qt:在一个类中有一个QPainter对象的实例
- 将 QPainter 与 QCoreApplication 一起使用
- 定期使用 QPainter 绘图
- QPainter 绘制不一致
- 如何使用QPainter将多个Qwidgets在不同页面中打印到PDF
- 限制qpainter在pixmap上的图形
- 如何将 QPainter 和 OpenGL 与着色器并行使用 Qt5.9
- 如何在 Qt/hook QPainter 中渲染没有抗锯齿的 SVG 以避免抗锯齿?
- 如何从QMainWindow中的一组小部件上使用QPainter绘制特定的小部件
- 为什么 QPainter 在 QAbstractItemView::d ataChanged 中不起作用
- QPainter 未正确绘制文本
- 如何使用 QPainter 缩放文本以适合边界框
- 无法存储(保存)QPainter 映像
- 如何转移qpainter?(从出厂功能中移动对象)
- 了解 QPainter 在 QOpenGLWidget 的 paintEvent 函数中的重要性