【问题标题】:what is the workaround for QString.contains() method for pyqt4+python3?pyqt4+python3 的 QString.contains() 方法的解决方法是什么?
【发布时间】:2015-03-24 16:15:58
【问题描述】:

我一直在将 Qt/C++ 小部件代码转换为 PyQt4+Python3。我定义了一个 QFileSystemModel,它返回的项目具有“数据”,文件名类型为“str”。 (这是 Qt/C++ 或 Python2x 中的 QString 类型)。

我必须搜索基于 QRegEx 的过滤器。在 Qt/C++ 和 Python2x 中,这是通过 QString.contains(QRegEx) 实现的。

我发现 QString 在 Python3 中已经被移除了。由于现在在 Python3 中所有内容现在都是“str”类型,我该如何实现旧方法 QString.contains(QRegEx)?

谢谢, 小谈田

【问题讨论】:

    标签: python-3.x pyqt4 qstring


    【解决方案1】:

    对于字符串主处理,Python 通常优于 Qt 提供的任何东西(尤其是在正则表达式方面)。

    但是如果一定要使用QRegExp:

        # test whether string contains pattern
        if QRegExp(pattern).indexIn(string) != -1:
            print('found')
    

    Python:

        if re.search(pattern, string):
            print('found')
    

    【讨论】:

    • 是的,我只能使用 QRegExp,因为它是来自 QSortPorxyModel 的查询函数的输入。我尝试使用 Python 的 re.compile 对其进行转换,但没有成功。但是你的第一种方法就像一个魅力。非常感谢!
    猜你喜欢
    • 2021-10-22
    • 2012-10-10
    • 2010-10-10
    • 2010-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多