web-dev-qa-db-ja.com

ImportError:PyQt5で名前「QStringList」をインポートできません

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著の「Rapid GUI Development with Python and Qt」を読んでいました。QStringList、またはQStringListの機能を果たすPyQt5の他の方法を使用するにはどうすればよいですか?

14

PyQt5ではQStringがないため、QStringListは必要ありません。

通常QStringを返すQt APIは、代わりに自動的にPython文字列を返します。同様に、通常QStringListを返すQt APIはa Pythonリストを含むPython文字列。そしてその逆も当てはまります:通常を受け入れるすべてのQt APIが受け入れますQStringまたはQStringListはPythonの同等物を代わりに受け入れます。

これは、 PyQt4をPython と併用する場合、または明示的に APIをバージョン2に設定する を使用する場合のsip.setapiを使用する場合のデフォルトの動作と同じです。

詳細については、 PyQt5リファレンスPyQt4とPyQt5の違い を参照してください。

24
ekhumoro

この問題の解決策を見つけることができなかったので、自分のニーズに対する回避策を考え出しました。シェルスクリプトからpythonスクリプトを開始し、grepを使用してエラーメッセージを無視します。これが他の人に役立つことを願っています。~/run/r_entry.py 2>&1| grep -v FIFinderSyncExtensionHost

0
Camhunir