qt: удалить элемент из QListView

Как удалить элемент из QListView? Для QComboBox это removeItem, но я не могу найти эквивалентную функцию для QListView .

Используя pyqt4.


person Claudiu    schedule 20.05.2011    source источник


Ответы (3)


В QListWidget вы можете удалить напрямую с помощью takeAt(), но не в QListView (читай Qt Model/View). Вы должны использовать виджет, если вам не нужна ваша собственная модель. Если QListView имеет то, что вам нужно, получите модель и удалите ее, т.е. qListView.model().removeRow(row)

person gwohpq9    schedule 21.05.2011

Вы должны использовать модель model = QStandardItemModel(). Затем эту модель нужно присвоить QListView listView.setModel(model). Таким образом, вы можете напрямую работать в модели model.removeRow(row) для удаления, standardItem = model.item(row) для получения значения, model.insertRow(0, standardItem) для вставки в первую позицию. Вы также можете увидеть дополнительные функции для работы с моделями в классе QStandardItemModel.

person ralfontez    schedule 30.08.2018

Вы должны использовать модель, а не представление.

см. http://doc.qt.io/qt-4.8/qabstractitemmodel.html#removeRow

person DimanNe    schedule 21.05.2011