如何初始化 QTextEdit 查找选项
How to initialise QTextEdit find options
我正在尝试在以下调用中设置选项:
bool QTextEdit::find(const QString &exp, QTextDocument::FindFlags options = QTextDocument::FindFlags())
但是 option
的签名对于 Python 程序员来说很复杂。我尝试了以下方法:
option = 0
option = option | QTextDocument.FindBackward
# continue to check other checkboxes and build up the option this way
很遗憾,错误是'int'出乎意料。我知道自 option=0
以来,以下 OR 操作可能也不会产生 int 类型。但是如何获得正确的起始 null/unset/zero 值?
如果你有默认值让这个参数空着:
doc = QTextDocument()
doc.find("aaa")
如果您想使用标志,请不要从文档中读取值,而是使用
QTextDocument.FindBackward
QTextDocument.FindCaseSensitively
QTextDocument.FindWholeWords
如果您想拥有或使用 |
运算符:
QTextDocument.FindWholeWords | QTextDocument.FindBackward
如果函数签名中有默认值,则不需要提供此参数。
该错误是由PyQt 中偶尔出现的一个小错误引起的。如果您更新到最新版本,错误可能会消失。但是,如果您无法更新,或者如果您想要针对此问题对代码进行防弹,解决方法是像这样初始化变量:
>>> option = QTextDocument.FindFlag(0)
>>> option = option | QTextDocument.FindBackward
现在这将保证 option
具有预期的类型。可以通过显式检查枚举值之一的类型来找到要使用的正确标志:
>>> print(type(QTextDocument.FindBackward))
<class 'PyQt5.QtGui.QTextDocument.FindFlag'>
或者您可以在文档中查找相关枚举:QTextDocument。
我正在尝试在以下调用中设置选项:
bool QTextEdit::find(const QString &exp, QTextDocument::FindFlags options = QTextDocument::FindFlags())
但是 option
的签名对于 Python 程序员来说很复杂。我尝试了以下方法:
option = 0
option = option | QTextDocument.FindBackward
# continue to check other checkboxes and build up the option this way
很遗憾,错误是'int'出乎意料。我知道自 option=0
以来,以下 OR 操作可能也不会产生 int 类型。但是如何获得正确的起始 null/unset/zero 值?
如果你有默认值让这个参数空着:
doc = QTextDocument()
doc.find("aaa")
如果您想使用标志,请不要从文档中读取值,而是使用
QTextDocument.FindBackward
QTextDocument.FindCaseSensitively
QTextDocument.FindWholeWords
如果您想拥有或使用 |
运算符:
QTextDocument.FindWholeWords | QTextDocument.FindBackward
如果函数签名中有默认值,则不需要提供此参数。
该错误是由PyQt 中偶尔出现的一个小错误引起的。如果您更新到最新版本,错误可能会消失。但是,如果您无法更新,或者如果您想要针对此问题对代码进行防弹,解决方法是像这样初始化变量:
>>> option = QTextDocument.FindFlag(0)
>>> option = option | QTextDocument.FindBackward
现在这将保证 option
具有预期的类型。可以通过显式检查枚举值之一的类型来找到要使用的正确标志:
>>> print(type(QTextDocument.FindBackward))
<class 'PyQt5.QtGui.QTextDocument.FindFlag'>
或者您可以在文档中查找相关枚举:QTextDocument。