cannot import name 'QStringListModel' from 'PyQt5.QtWidgets'
时间: 2023-08-08 21:09:33 浏览: 251
抱歉,可能是因为你使用的PyQt5版本较老,没有QStringListModel类。可以使用QStandardItemModel类来代替,具体实现方式如下:
```python
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QStandardItemModel, QStandardItem
from PyQt5.QtWidgets import QApplication, QComboBox, QCompleter, QVBoxLayout, QWidget
app = QApplication([])
# 创建一个QComboBox对象
comboBox = QComboBox()
# 创建一个QStandardItemModel对象,并将数据添加到模型中
model = QStandardItemModel()
model.appendRow(QStandardItem('Apple'))
model.appendRow(QStandardItem('Banana'))
model.appendRow(QStandardItem('Cherry'))
model.appendRow(QStandardItem('Durian'))
model.appendRow(QStandardItem('Elderberry'))
# 创建一个QCompleter对象并将其设置为QComboBox的自动完成器
completer = QCompleter()
comboBox.setCompleter(completer)
# 将需要提示的内容添加到QCompleter中
completer.setCompletionMode(QCompleter.PopupCompletion) # 设置自动完成模式
completer.setCaseSensitivity(Qt.CaseInsensitive) # 设置大小写不敏感
completer.setModel(model) # 设置自动完成的模型
# 将QComboBox添加到需要显示的窗口中
window = QWidget()
layout = QVBoxLayout()
layout.addWidget(comboBox)
window.setLayout(layout)
window.show()
app.exec_()
```
这样就可以实现combobox边输入边提示的功能了。
阅读全文