Я только начал с PyQt5 и у меня есть небольшой файл:
class Window(QWidget):
def __init__(self):
QWidget.__init__(self)
self.setMinimumWidth(350)
layout = QGridLayout()
self.setLayout(layout)
self.completer = QCompleter()
self.completer.setCaseSensitivity(Qt.CaseInsensitive)
self.completer.setCompletionMode(QCompleter.PopupCompletion)
self.completer.setMaxVisibleItems(10)
self.lineedit = QLineEdit()
self.lineedit.setCompleter(self.completer)
self.lineedit.setFixedHeight(30)
self.lineedit.setFixedWidth(300)
#self.lineedit.returnPressed.connect(self.show_selected)
self.lineedit.textChanged.connect(self.text_changed)
layout.addWidget(self.lineedit,0,0)
def text_changed(self):
#the function get_request returns a list of names taken from
#a database e.g ['matthew','mark','morris','mickey']
vals = self.get_request(self.lineedit.text())
self.completer.setModel(vals)
app = QApplication(sys.argv)
screen = Window()
sys.exit(app.exec_())
, и моя проблема заключается в этой ошибке:
TypeError: setModel(self, QAbstractItemModel): argument 1 has unexpected type 'list'
каждый раз, когда я запускаю приведенный выше код. Так что мой вопросэто: именно то, что я делаю не так здесь, я только начал с pyqt5 здесь и как моя первая программа, я сразу получаю эту ошибку. В качестве примечания, когда я использую фиксированный список и помещаю его в конструктор QCompleter
программыработает, однако это не вариант, так как мне нужно, чтобы результаты менялись, когда пользователь набирает