ImportError: cannot import name 'QStringList' in PyQt5

ImportError: cannot import name 'QStringList' in PyQt5

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

导入 class
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 的书 "Rapid GUI Development with Python and Qt"。我如何使用 QStringList 或 PyQt5 中的任何其他可以完成 QStringList 工作的东西?

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

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

这与使用 PyQt4 with Python 3, or when explicitly setting the API to version 2 使用 sip.setapi 时的默认行为相同。

有关详细信息,请参阅:Differences Between PyQt4 and PyQt5 in the PyQt5 Reference

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