ImportError: cannot import name 'QStringListModel' from 'PyQt5.QtGui'
时间: 2023-07-24 11:14:15 浏览: 243
ImportError:无法从“django.utils.encoding”导入名称“force text”Python 错误
如果出现了 `ImportError: cannot import name 'QStringListModel' from 'PyQt5.QtGui'` 的错误,很可能是 PyQt5 版本的问题。
在较早的版本中,QStringListModel 是 PyQt5.QtCore 模块中的一个类。但在较新的版本中,QStringListModel 被移到了 PyQt5.QtWidgets 模块中。
因此,如果你使用的是较新的版本的 PyQt5,你需要将上述示例代码中的 `from PyQt5.QtWidgets import QApplication, QComboBox, QListView, QStringListModel` 改为 `from PyQt5.QtWidgets import QApplication, QComboBox, QListView`,然后在代码中使用 `from PyQt5.QtGui import QStringListModel` 导入 QStringListModel 类。
示例代码如下:
```python
from PyQt5.QtWidgets import QApplication, QComboBox, QListView
from PyQt5.QtGui import QStringListModel
app = QApplication([])
combo = QComboBox()
combo.setView(QListView())
combo.view().setSelectionMode(QListView.MultiSelection)
model = QStringListModel()
model.setStringList(['Apple', 'Banana', 'Cherry', 'Durian', 'Eggplant'])
combo.setModel(model)
combo.show()
app.exec_()
```
运行代码后,可以看到一个下拉框,下拉框中的列表可以进行多选操作。选择的结果可以通过 combo.view().selectedIndexes() 获取。
阅读全文