QT富文本简单使用
介绍
富文本其实就是在一个编辑框内又输入文字又输入图片等各种东西,不仅仅是文字,qt自带的有QTextEdit,该类中有一个QTextDocument,一切就从这里开始。
主要搞明白以下几个类:
QTextDocument
QTextFrame
QTextBlock
QTextCursor
QTextTableFormat
QTextImageFormat
QTextListFormat
插入
子框架
QTextFrameFormat frameFormat;
ui->textEdit->textCursor().insertFrame(frameFormat);
图片
QTextImageFormat imageFormat;
imageFormat.setWidth(50);
imageFormat.setHeight(50);
imageFormat.setName("C:/头像.jpeg");
ui->textEdit->textCursor().insertImage(imageFormat);
表格(3x3)
QTextTableFormat tableFormat;
ui->textEdit->textCursor().insertTable(3, 3, tableFormat);
列表
QTextListFormat listFormat;
ui->textEdit->textCursor().insertList(listFormat);
遍历指定框架
for(QTextFrame::iterator it = frame->begin(); it != frame->end(); it++)
{
//获取框架
QTextFrame* textFrame = it.currentFrame();
if(textFrame)
{
qDebug() << "textFrame";
continue;
}
//获取文本块
QTextBlock textBlock = it.currentBlock();
if(textBlock.isValid())
{
qDebug() << textBlock.text();
}
}
遍历指定框架中所有文本块(包括子框架)
for(QTextBlock block = ui->textEdit->document()->firstBlock(); block.isValid(); block = block.next())
{
qDebug() << QString("第%1个 内容: %2 大小: %3").arg(block.firstLineNumber()).arg(block.text()).arg(block.length());
}