当前位置: 首页>>代码示例>>C++>>正文


C++ QTextBlock::textFormats方法代码示例

本文整理汇总了C++中QTextBlock::textFormats方法的典型用法代码示例。如果您正苦于以下问题:C++ QTextBlock::textFormats方法的具体用法?C++ QTextBlock::textFormats怎么用?C++ QTextBlock::textFormats使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在QTextBlock的用法示例。


在下文中一共展示了QTextBlock::textFormats方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: updateFontIfUniform

void AnnotationSettings::updateFontIfUniform()
{
	bool uniformFontFamily = true;
	bool uniformSize = true;
	bool uniformColor = true;

	QTextDocument *doc = _ui->content->document();

	QTextBlock b = doc->firstBlock();
	QTextCharFormat fmt1;
	bool first=true;

	// Check all character formats in all blocks. If they are the same,
	// we can reset the font for the wole document.
	while(b.isValid()) {
		for(const QTextLayout::FormatRange &fr : b.textFormats()) {

			if(first) {
				fmt1 = fr.format;
				first = false;

			} else {
				uniformFontFamily &= fr.format.fontFamily() == fmt1.fontFamily();
				uniformSize &= fr.format.fontPointSize() == fmt1.fontPointSize();
				uniformColor &= fr.format.foreground() == fmt1.foreground();
			}
		}
		b = b.next();
	}

	resetContentFont(uniformFontFamily, uniformSize, uniformColor);
}
开发者ID:Xiangyu-Xue,项目名称:Drawpile,代码行数:32,代码来源:annotationsettings.cpp

示例2: importScenario


//.........这里部分代码省略.........
					_importParameters.outline);
			const QString blockTypeName = ScenarioBlockStyle::typeName(blockType);
			QString blockText = cursor.block().text().simplified();

			//
			// ... запишем данные в строку
			//
			writer.writeStartElement(blockTypeName);

			//
			// Если текущий тип "Время и место" и нужно удалить номер сцены, то делаем это
			//
			if (blockType == ScenarioBlockStyle::SceneHeading
				&& _importParameters.removeScenesNumbers){
				blockText = blockText.toUpper();
				QRegularExpressionMatch match = START_FROM_NUMBER_CHECKER.match(blockText);
				if (match.hasMatch()) {
					blockText = blockText.mid(match.capturedEnd());
				}
			}

			//
			// Выполняем корректировки
			//
			blockText = ::clearBlockText(blockType, blockText);

			//
			// Пишем текст
			//
			writer.writeStartElement(NODE_VALUE);
			writer.writeCDATA(blockText);
			writer.writeEndElement();

			//
			// Пишем редакторские комментарии
			//
			if (_importParameters.saveReviewMarks) {
				const QTextBlock currentBlock = cursor.block();
				if (!currentBlock.textFormats().isEmpty()) {
					writer.writeStartElement(NODE_REVIEW_GROUP);
					foreach (const QTextLayout::FormatRange& range, currentBlock.textFormats()) {
						//
						// Всё, кроме стандартного
						//
						if (range.format.boolProperty(Docx::IsForeground)
							|| range.format.boolProperty(Docx::IsBackground)
							|| range.format.boolProperty(Docx::IsHighlight)
							|| range.format.boolProperty(Docx::IsComment)) {
							writer.writeStartElement(NODE_REVIEW);
							writer.writeAttribute(ATTRIBUTE_REVIEW_FROM, QString::number(range.start));
							writer.writeAttribute(ATTRIBUTE_REVIEW_LENGTH, QString::number(range.length));
							if (range.format.hasProperty(QTextFormat::ForegroundBrush)) {
								writer.writeAttribute(ATTRIBUTE_REVIEW_COLOR,
													  range.format.foreground().color().name());
							}
							if (range.format.hasProperty(QTextFormat::BackgroundBrush)) {
								writer.writeAttribute(ATTRIBUTE_REVIEW_BGCOLOR,
													  range.format.background().color().name());
							}
							writer.writeAttribute(ATTRIBUTE_REVIEW_IS_HIGHLIGHT,
												  range.format.boolProperty(Docx::IsHighlight) ? "true" : "false");
							//
							// ... комментарии
							//
							const QStringList comments = range.format.property(Docx::Comments).toStringList();
							const QStringList authors = range.format.property(Docx::CommentsAuthors).toStringList();
							const QStringList dates = range.format.property(Docx::CommentsDates).toStringList();
							for (int commentIndex = 0; commentIndex < comments.size(); ++commentIndex) {
								writer.writeEmptyElement(NODE_REVIEW_COMMENT);
								writer.writeAttribute(ATTRIBUTE_REVIEW_COMMENT, comments.at(commentIndex));
								writer.writeAttribute(ATTRIBUTE_REVIEW_AUTHOR, authors.at(commentIndex));
								writer.writeAttribute(ATTRIBUTE_REVIEW_DATE, dates.at(commentIndex));
							}
							//
							writer.writeEndElement();
						}
					}
					writer.writeEndElement();
				}
			}
			//
			// ... конец абзаца
			//
			writer.writeEndElement();

			//
			// Запомним последний стиль блока и обнулим счётчик пустых строк
			//
			lastBlockType = blockType;
			emptyLines = 0;
		}
		//
		// Если в блоке нет текста, то увеличиваем счётчик пустых строк
		//
		else {
			++emptyLines;
		}

		cursor.movePosition(QTextCursor::NextCharacter);
	} while (!cursor.atEnd());
开发者ID:Roger-Waters,项目名称:KITScenarist,代码行数:101,代码来源:DocumentImporter.cpp


注:本文中的QTextBlock::textFormats方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。