gpt4 book ai didi

python - QTextBlock 或 QTextFrame 迭代器如何在 PyQt 中工作

转载 作者:太空宇宙 更新时间:2023-11-04 02:23:02 24 4
gpt4 key购买 nike

当使用 QTextDocument 时,Qt 提供迭代器(例如 QTextBlock.iterator)来移动内容。文档 here显示了 C++ 代码,但显然 ++ 运算符不起作用,而且 PyQt 版本似乎没有任何类似 next() 函数的东西。

那么如何让迭代器迭代呢?

QTextFrame.begin 的文档(返回迭代器)与“STL 样式迭代器”的链接断开,但我找不到这些在 Python 中实现的任何细节。

最佳答案

documentation表明在 PyQt 中,迭代器对象支持 __iadd____isub__。这允许您使用,例如it += 1 而不是 ++it

这是一个小演示:

# from PyQt5.QtWidgets import QApplication, QTextEdit
from PyQt4.QtGui import QApplication, QTextEdit

app = QApplication(['test'])

edit = QTextEdit()
edit.setText('one<b>two</b>three<br>')

it = edit.document().firstBlock().begin()
while not it.atEnd():
fragment = it.fragment()
if fragment.isValid():
print(fragment.text())
it += 1

输出:

one
two
three

关于python - QTextBlock 或 QTextFrame 迭代器如何在 PyQt 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51136174/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com