我有一个QTextEdit,里面有一些格式化的文本。如何返回与特定字体大小和/或字体颜色匹配的所有文本?你知道吗
我已经试过了QTextDocument.objectForFormat格式()方法,作为参数,我提供了一个具有属性FontPointSize的QTextFormat对象,但它返回None
。你知道吗
import sys
from PyQt5.QtWidgets import QMainWindow, QTextEdit, QApplication
from PyQt5.QtGui import QColor
from PyQt5 import Qt
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.textEdit = QTextEdit()
self.setCentralWidget(self.textEdit)
self.textEdit.setTextColor(QColor('#00aaff'))
self.textEdit.setFontPointSize(14.0)
self.textEdit.insertPlainText('Title\n')
self.textEdit.setTextColor(QColor('#e0e0e0'))
self.textEdit.setFontPointSize(11.0)
self.textEdit.insertPlainText('content\n')
self.textEdit.setTextColor(QColor('#00aaff'))
self.textEdit.setFontPointSize(14.0)
self.textEdit.insertPlainText('Title2\n')
self.textEdit.setTextColor(QColor('#e0e0e0'))
self.textEdit.setFontPointSize(11.0)
self.textEdit.insertPlainText('content_title2')
self.printFontSizes()
self.show()
def printFontSizes(self):
doc = self.textEdit.document()
for i in range(doc.blockCount()):
print(doc.findBlockByNumber(i).text(),': ',
doc.findBlockByNumber(i).charFormat().fontPointSize())
if __name__ == '__main__':
app = QApplication(sys.argv)
win = MainWindow()
sys.exit(app.exec_())
运行上述代码将打印以下内容:
Title : 0.0
content : 14.0
Title2 : 11.0
content_title2 : 14.0
我是不是做错什么了?你知道吗
因为在我的特定示例中,上面的代码显示了错误的字体大小,所以我使用QTextCursor遍历qtexted中的每一行并检查每一行的字体大小,从而解决了这个问题。以下是相关代码:
相关问题 更多 >
编程相关推荐