我正在使用 PyQt 并在使用带有 QSortFilterProxyModel 的 setFilterRegExp() 时遇到问题。源模型输出整数 1-30,QSFPM 将过滤 1-30,只留下提供列表中的数字。
proxy.setFilterRegExp(QRegExp('^%s{1,1}%' % sourceModel.wantedNumbersList()))
如果手动输入所需的数字:
proxy.setFilterRegExp(QRegExp('^[2, 3, 4, 5, 8, 9, 10, 18, 19]{1,1}%'))
两者都会导致 [1, 2, 3, 4, 5, 8, 9] 被留下。所需的数字 >=10 不会留在结果中,并且出于某种原因包含 1。
也试过:
proxy.setFilterRegExp(RegExp('^[2|3|4|15]{1,1}$')))
..它给出了 [1,2,3,4,5] ,即将所需的数字 15 解释为 1 和 5。
从文档中,我认为 ^ & $ 会找到每个的完全匹配,而是找到所有数字的所有出现。
许多问候