本文整理汇总了Python中PyQt5.Qt.QTextCharFormat.setObjectType方法的典型用法代码示例。如果您正苦于以下问题:Python QTextCharFormat.setObjectType方法的具体用法?Python QTextCharFormat.setObjectType怎么用?Python QTextCharFormat.setObjectType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PyQt5.Qt.QTextCharFormat
的用法示例。
在下文中一共展示了QTextCharFormat.setObjectType方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: addNode
# 需要导入模块: from PyQt5.Qt import QTextCharFormat [as 别名]
# 或者: from PyQt5.Qt.QTextCharFormat import setObjectType [as 别名]
def addNode(self, node):
if type(node) == Paragraph:
self.paraFormat = self.formatManager.getFormat(node.style)
# NOTE: "The block char format is the format used when inserting
# text at the beginning of an empty block."
# See also below.
self.cursor.insertBlock(self.paraFormat.getBlockFormat(), self.paraFormat.getCharFormat())
# self.cursor.insertFragment(QTextDocumentFragment.fromPlainText(''))
if self.listLevel > 0:
# TODO: use list style from list node - requires a stack, though ...
listStyle = ('itemizedlist', 'level', str(self.listLevel))
newList = self.cursor.createList(self.formatManager.getFormat(listStyle).getListFormat())
for n in node.children:
self.addNode(n)
elif type(node) == List:
self.listLevel += 1
for n in node.children:
self.addNode(n)
self.listLevel -= 1
elif type(node) is ImageFragment:
imageObject = ImageObject()
imagePath = os.path.join(self.contentPath, node.image)
imageObject.setName(imagePath)
imageObjectFormat = QTextCharFormat()
imageObjectFormat.setObjectType(QTextFormat.UserObject + 1)
imageObjectFormat.setProperty(QTextFormat.UserProperty + 1, imageObject)
self.cursor.insertText('\ufffc', imageObjectFormat);
elif type(node) is MathFragment:
mathFormula = MathFormulaObject()
mathFormula.setFormula(node.text)
mathFormula.image = node.image # renderFormula()
mathObjectFormat = QTextCharFormat()
mathObjectFormat.setObjectType(QTextFormat.UserObject + 1)
mathObjectFormat.setVerticalAlignment(QTextCharFormat.AlignMiddle)
mathObjectFormat.setProperty(QTextFormat.UserProperty + 1, mathFormula)
self.cursor.insertText('\ufffc', mathObjectFormat);
elif type(node) is TextFragment:
text = node.text.replace('\n', '\u2028')
if node.href is not None:
fmt = self.formatManager.getFormat(('link', None, None)) # TODO!
charFmt = fmt.getCharFormat()
charFmt.setAnchorHref(node.href)
self.cursor.insertText(text, charFmt)
else:
# "The block char format is the format used when inserting text at the beginning of an empty block.
# Hence, the block char format is only useful for the first fragment -
# once a fragment is inserted with a different style, and afterwards
# another fragment is inserted with no specific style, we need to reset
# the char format to the block's char format explicitly!
if node.style is not None:
fmt = self.formatManager.getFormat(node.style)
else:
fmt = self.paraFormat
self.cursor.insertText(text, fmt.getCharFormat())