如何初始化QTextEdit查找选项

2024-10-01 17:22:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试设置以下调用中的选项:

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类型。但是如何得到一个正确的起始空/未设置/零值?你知道吗


Tags: 方法选项find程序员intoptionsbooloption
2条回答

如果使用默认值,请取消填充此参数:

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。你知道吗

相关问题 更多 >

    热门问题