Qt: Rimuovi l'oggetto da QListView
Domanda
Come posso rimuovere un elemento da QListView
?Per QComboBox
è removeItem
ma non riesco a trovare una funzione equivalente per QListView
.
Uso di Pyqt4.
Soluzione
In QListWidget è possibile rimuovere direttamente con takeAt()
, ma non in QListView (leggi il modello QT / View).Dovresti usare il widget a meno che tu non abbia bisogno del tuo modello.Se QListView è ciò che desideri quindi ottenere il modello e rimuovi, I.e. qListView.model().removeRow(row)
Altri suggerimenti
Dovresti usare un modello model = QStandardItemModel()
.Quindi, questo modello dovrebbe essere assegnato a QListView listView.setModel(model)
.Quindi, è possibile lavorare direttamente nel modello model.removeRow(row)
per la rimozione, standardItem = model.item(row)
per ottenere il valore, model.insertRow(0, standardItem)
per l'inserimento nella prima posizione.Puoi anche vedere altre funzioni aggiuntive per lavorare con i modelli in qdndarditemmodel class
Dovresti usare il modello, non visualizzare.
Vedi https://doc.qt.io/qt-4.8/qabstractactitemmodel.html # Removerew