使用QPainter绘制富文本

路飞

有没有办法绘制带有下标的固定文本。我的目标是拥有类似“ K_max = K_2。3”的内容

QString equation="K_max=K_2 . 3";
painter.drawText( QRect(x, y , width, y+height), Qt::AlignLeft|Qt::AlignVCenter, equation);

我也尝试使用html标记格式化文本,但没有帮助(标记随文本一起打印):

QString equation="<p>K<sub>max</sub></p>=<p>K<sub>2</sub></p>.3"
米哈伊洛(Mykhaylo Kopytonenko)

这是使用QTextDocument富文本格式的完整示例。

mainWindow.cpp:

#include "mainWindow.h"

void MainWindow::paintEvent(QPaintEvent*)
{
    QPainter painter(this);
    QTextDocument td;
    td.setHtml("K<sub>max</sub>=K<sub>2</sub> &middot; 3");
    td.drawContents(&painter);
}

如果需要在特定点绘制文本,请在绘制之前平移画家的坐标系:

painter.translate(QPointF(50, 50));

mainWindow.cpp-另一个解决方案:

#include "mainWindow.h"

void MainWindow::paintEvent(QPaintEvent*)
{
    QPainter painter(this);
    QTextDocument td;
    td.setHtml("K<sub>max</sub>=K<sub>2</sub> &middot; 3");
    QAbstractTextDocumentLayout::PaintContext ctx;
    ctx.clip = QRectF( 0, 0, 400, 100 );
    td.documentLayout()->draw( &painter, ctx );
}

mainWindow.h:

#include <QtGui>

class MainWindow: public QWidget
{
protected:
    void paintEvent(QPaintEvent*);
};

main.cpp:

#include <QtGui>
#include "mainWindow.h"

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    MainWindow mainWindow;
    mainWindow.show();
    return app.exec();
}

项目文件:

TEMPLATE = app
QT += gui
HEADERS = mainWindow.h
SOURCES = main.cpp mainWindow.cpp

结果:

在此处输入图片说明

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用QPainter平滑绘制

来自分类Dev

使用QPainter进行心电图波形绘制

来自分类Dev

Qt - QPainter 不使用宽高比绘制 QPixmap

来自分类Dev

在Qt富文本中绘制多个轮廓线

来自分类Dev

QPainter在不同的QPaintDevices上不同地绘制文本

来自分类Dev

使用QPainter和(QGraphicsView + QGraphicsScene)绘制之间的区别

来自分类Dev

如何使用Qt QPainter绘制线性渐变弧?

来自分类Dev

如何使用Qt QPainter绘制线性渐变弧?

来自分类Dev

QPainter 不绘制

来自分类Dev

使用OpenTK绘制文本

来自分类Dev

使用Javascript在Rails应用中通过POST发送富文本

来自分类Dev

在XPages中将富文本与Java托管Bean结合使用

来自分类Dev

使用按钮将富文本添加到QTextEdit中

来自分类Dev

在XPages中将富文本与Java托管Bean结合使用

来自分类Dev

无法使用GMAIL API发送富文本电子邮件

来自分类Dev

如何使用GmailApp发送富文本电子邮件?

来自分类Dev

Sitecore富文本验证

来自分类Dev

QPainter在QScrollArea内绘制线条

来自分类Dev

在Neo4j上使用html标记通过富文本进行全文本搜索

来自分类Dev

如何使用JavaScript或jquery在[b]而不是<b>的富文本编辑器中加粗文本

来自分类Dev

玉兰富文本字段

来自分类Dev

Windows,禁用富文本复制

来自分类Dev

Qt QLabel富文本列表

来自分类Dev

富文本框*格式

来自分类Dev

如何从富文本中截断?

来自分类Dev

使用一个QPainter一次绘制多个输出:SVG和QImage

来自分类Dev

如何在已放置的QLabel或QPixmap上使用QPainter进行绘制?

来自分类Dev

使用一个QPainter一次绘制多个输出:SVG和QImage

来自分类Dev

使用DocumentFragment和innerHTML使用富文本注释存储XSS预防

Related 相关文章

热门标签

归档