2015-01-03 19 views
9

Ich verwende PyQt5, kann aber QStringList nicht importieren. Ich weiß, dass QStringList im Modul QtCore in PyQt4 war. Also versuche ich, die Klasse zu importierenImportError: Name 'QStringList' kann nicht in PyQt5 importiert werden

mit
from PyQt5.QtCore import QStringList 

aber es zeigt diesen Fehler

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

Ich verwende PyCharm und es zeigt, in Auto-Vervollständigung etwas namens QStringListModel. Ich folgte dem Buch "Rapid GUI Development with Python und Qt" von Mark Summerfield. Wie verwende ich QStringList oder irgendetwas anderes in PyQt5, das die Aufgabe von QStringList übernimmt?

Antwort

13

In PyQt5 gibt es keine QString und daher keine Notwendigkeit für QStringList.

Jede Qt-API, die normalerweise QString zurückgibt, gibt stattdessen automatisch eine Python-Zeichenfolge zurück. Analog dazu geben alle Qt-APIs, die normalerweise QStringList zurückgeben, eine Python-Liste zurück, die Python-Zeichenfolgen enthält. Und das Gegenteil gilt auch: Jede Qt API, die normalerweise akzeptiert ein QString oder QStringList akzeptiert die Python-Entsprechungen statt.

Dies ist das gleiche wie das Standardverhalten bei Verwendung von PyQt4 with Python 3 oder wenn explizit setting the API to version 2 mit sip.setapi.

Für weitere Details siehe: Differences Between PyQt4 and PyQt5 in der PyQt5 Reference.

+0

Danke. Endlich habe ich das Problem mit QStringList in PyQt5 gelöst. Nur ersetzt QStringList mit Liste, das ist es! –

Verwandte Themen