【问题标题】:ImportError: cannot import name 'QStringList' in PyQt5ImportError:无法在 PyQt5 中导入名称“QStringList”
【发布时间】:2015-03-01 16:49:26
【问题描述】:

我正在使用 PyQt5 但无法导入 QStringList。我知道 QStringList 曾经在 PyQt4 的模块 QtCore 中。所以我尝试使用

导入类
from PyQt5.QtCore import QStringList

但它显示了这个错误

C:\Python34\python.exe C:/Users/User/PycharmProjects/FirstProject/Test.py
Traceback (most recent call last):
File "C:/Users/User/PycharmProjects/FirstProject/Test.py", line 3, in <module>
from PyQt5.QtCore import QStringList
ImportError: cannot import name 'QStringList'

我正在使用 PyCharm,它会在自动完成中显示名为 QStringListModel 的东西。我正在关注 Mark Summerfield 的“使用 Python 和 Qt 进行快速 GUI 开发”一书。如何使用 QStringList 或 PyQt5 中可以完成 QStringList 工作的其他任何东西?

【问题讨论】:

    标签: python python-3.x import qstring pyqt5


    【解决方案1】:

    在 PyQt5 中,没有QString,因此不需要QStringList

    任何通常会返回 QString 的 Qt API 都会自动返回 Python 字符串。类似地,任何通常会返回 QStringList 的 Qt API 都将返回包含 Python 字符串的 Python 列表。反之亦然:任何通常接受 QStringQStringList 的 Qt API 都将接受 Python 等价物。

    这与使用 PyQt4 with Python 3 或明确使用 setting the API to version 2 使用 sip.setapi 时的默认行为相同。

    更多详情请看:PyQt5 Reference中的Differences Between PyQt4 and PyQt5

    【讨论】:

    • 谢谢。我终于解决了 PyQt5 中 QStringList 的问题。把QStringList换成list就行了!
    【解决方案2】:

    由于我找不到此问题的解决方案,因此我想出了一种解决方法来满足我的需求。我从 shell 脚本启动我的 python 脚本并使用 grep 忽略错误消息。我希望这对其他人有帮助。 ~/run/r_entry.py 2>&1| grep -v FIFinderSyncExtensionHost

    【讨论】:

    • 这个答案似乎与问题无关。
    猜你喜欢
    • 2019-09-27
    • 2021-01-01
    • 1970-01-01
    • 2015-05-29
    • 2016-03-31
    • 2014-10-10
    • 2014-09-20
    • 2014-08-28
    • 2014-06-10
    相关资源
    最近更新 更多