本文整理汇总了C++中QTextCursor::setBlockCharFormat方法的典型用法代码示例。如果您正苦于以下问题:C++ QTextCursor::setBlockCharFormat方法的具体用法?C++ QTextCursor::setBlockCharFormat怎么用?C++ QTextCursor::setBlockCharFormat使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QTextCursor
的用法示例。
在下文中一共展示了QTextCursor::setBlockCharFormat方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: read
//.........这里部分代码省略.........
}
}
else if (token.type == Token::Italic)
{
fmt.setFontItalic(!fmt.fontItalic());
}
else if (token.type == Token::InlineCodeDelimiter)
{
while (iterator.hasNext())
{
const Token next = iterator.next();
if (next.type == Token::InlineCodeDelimiter)
{
break;
}
else
{
cursor.insertText(token.source, codeFmt);
}
}
}
else if (token.type == Token::Character)
{
cursor.insertText(token.content.toChar(), fmt);
}
else
{
cursor.insertText(token.source, fmt);
}
}
}
};
if (paralist.second.indent == -1)
{
const Paragraph paragraph = paralist.first;
QTextCharFormat charFmt;
QTextBlockFormat blockFmt;
blockFmt.setBottomMargin(5.0f);
if (Paragraph::FirstHeading <= paragraph.type && paragraph.type <= Paragraph::LastHeading)
{
charFmt.setFontPointSize(sizeMap[paragraph.type]);
}
else if (paragraph.type == Paragraph::Quote)
{
blockFmt.setIndent(1);
}
else if (paragraph.type == Paragraph::Code)
{
blockFmt.setNonBreakableLines(true);
charFmt.setFontFamily("Monospace");
}
if (!firstBlock)
{
cursor.insertBlock();
}
else
{
firstBlock = false;
}
cursor.setBlockFormat(blockFmt);
cursor.block().setUserState(paragraph.type);
insertTokens(paragraph.tokens, charFmt, paragraph.type == Paragraph::Code);
}
else
{
const List list = paralist.second;
qDebug() << "##########################" << list.indent << list.ordered;
std::for_each(list.paragraphs.begin(), list.paragraphs.end(), [](const Paragraph &item){qDebug() << item;});
cursor.setBlockFormat(QTextBlockFormat());
cursor.setBlockCharFormat(QTextCharFormat());
QTextListFormat listFormat;
listFormat.setStyle(list.ordered ? QTextListFormat::ListDecimal : QTextListFormat::ListDisc);
listFormat.setIndent(list.indent);
QTextList *l = cursor.insertList(listFormat);
qDebug() << "inserting list" << list.indent;
bool firstBlock = true;
for (const Paragraph ¶graph : list.paragraphs)
{
if (firstBlock)
{
firstBlock = false;
}
else
{
cursor.insertBlock();
qDebug() << "inserting block";
}
insertTokens(paragraph.tokens, QTextCharFormat(), false);
qDebug() << l->count();
l->add(cursor.block());
qDebug() << l->count();
qDebug() << "inserting characters";
}
}
}
cursor.endEditBlock();
qDebug() << doc->toHtml();
}
示例2: contenu_paragraphe
//Lecture des paragraphes
bool OpenDocument::contenu_paragraphe(QDomElement e, QTextCursor &curseur, bool puces, bool h_item, bool tableau){
ErrorManager instance_erreur;
p_current++;
case_tableau = "";
//On change la QProgressBar
//chargement->
QString nom_style = e.attribute("text:style-name", "default");
QTextCharFormat format = cree_bloc_format(nom_style);
//On récupère le format de bloc
QTextBlockFormat format_bloc = cree_bloc_format2(nom_style);
//On ajoute un marginTop de 5 pour plus de lisibilité
format_bloc.setTopMargin(2);
//Style spécifique aux puces
if(puces || h_item){
int id_style = -1;
for(int i=0; i<styles.size(); i++){
//On parcourt les styles
if(id_style >= 0){
break;
}
for(int j=0; j<styles.at(i).size(); j++){
//On rentre dans le QMultiMap
if(puces){
if(styles.at(i).value("style-puces") == nom_style){
id_style = i;
//On sort de la boucle
break;
}
}
else{
//Ce ne peut être que le "h_item" sinon la boucle ne se déclencherait pas
if(styles.at(i).value("style-h") == nom_style){
id_style = i;
//On se casse
break;
}
}
}
}
if(id_style != -1){
//On merge le style
format.merge(cree_bloc_format(styles.at(id_style).value("style-puces")));
}
}
//On applique le format au curseur
curseur.setCharFormat(format);
if(!tableau){
curseur.beginEditBlock();
}
curseur.setBlockCharFormat(format);
curseur.setBlockFormat(format_bloc);
if(puces){
contenu_puce.append("<li>");
//On vérifie la taille
int taille = format.fontPointSize();
if(taille == 0){
//Il y a eu un bug lors de la sélection du style, on applique la taille par défaut
format.setFontPointSize(12);
}
}
//Maintenant on lit les <span>
QDomNode enfants = e.firstChild();
while(!enfants.isNull()){
if(enfants.isElement()){
QDomElement type = enfants.toElement();
//On parcours le type d'élément
if(type.tagName() == "text:span"){
traite_span(format, curseur, type, puces, tableau);
}
else if(type.tagName() == "text:a"){ //Il s'agit d'un lien
traite_lien(curseur, type, format);
}
else if(type.tagName() == "text:line-break"){
}
else if(type.tagName() == "text:s"){
curseur.insertText(QString(" "));
}
else if(type.tagName() == "text:tab"){
curseur.insertText(QString(" "));
}
else if(type.tagName() == "draw:frame"){
QDomNode enfants_image = type.firstChild();
QString style_image = type.attribute("draw:style-name");
if(enfants_image.toElement().tagName() == "draw:image"){
if(!traite_image(curseur, enfants_image.toElement(), style_image)){
instance_erreur.Erreur_msg(tr("ODT : Erreur lors de la lecture des images (return false)"), QMessageBox::Ignore);
}
}
}
else if(type.tagName() == "text:list"){
if(!contenu_puces(type, curseur)){
//.........这里部分代码省略.........