2015-01-03 22 views
9

Tôi đang sử dụng PyQt5 nhưng không thể nhập QStringList. Tôi biết rằng QStringList từng nằm trong module QtCore trong PyQt4. Vì vậy, tôi cố gắng import lớp sử dụngImportError: không thể nhập tên 'QStringList' trong PyQt5

from PyQt5.QtCore import QStringList 

nhưng nó cho thấy lỗi này

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' 

Tôi đang sử dụng PyCharm và nó cho thấy trong một cái gì đó tự động hoàn thành được gọi là QStringListModel. Tôi đã theo dõi cuốn sách "Phát triển GUI nhanh với Python và Qt" của Mark Summerfield. Làm thế nào để sử dụng QStringList, hoặc bất cứ điều gì khác trong PyQt5 mà sẽ làm công việc của QStringList?

Trả lời

13

Trong PyQt5, không có QString và do đó không cần QStringList.

Bất kỳ API Qt nào bình thường sẽ trả về một QString, sẽ tự động trả lại chuỗi Python thay thế. Tương tự, bất kỳ API Qt nào bình thường trả lại một QStringList sẽ trả về một danh sách Python chứa các chuỗi Python. Và ngược lại cũng áp dụng: bất kỳ API Qt nào bình thường chấp nhận a QString hoặc QStringList sẽ chấp nhận các tương đương Python thay thế.

Điều này cũng giống như hành vi mặc định khi sử dụng PyQt4 with Python 3 hoặc khi rõ ràng setting the API to version 2 sử dụng sip.setapi.

Để biết thêm chi tiết, hãy xem: Differences Between PyQt4 and PyQt5 trong số PyQt5 Reference.

+0

Cảm ơn. Cuối cùng tôi đã gặp vấn đề với QStringList trong PyQt5. Chỉ cần thay thế QStringList với danh sách, đó là nó! –

Các vấn đề liên quan