qt:从 QListView 中删除项目
如何从 QListView
中删除项目?对于QComboBox
,它是removeItem
< /a> 但我找不到 QListView
的等效函数。
使用pyqt4。
How do I remove an item from a QListView
? For QComboBox
it's removeItem
but I can't find an equivalent function for QListView
.
Using pyqt4.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在 QListWidget 中,您可以直接使用
takeAt()
删除,但不能在 QListView 中删除(请阅读 Qt Model/View)。除非您需要自己的模型,否则您应该使用该小部件。如果 QListView 是您想要的,则获取模型并删除,即 qListView.model().removeRow(row)In QListWidget you can remove directly with
takeAt()
, but not in QListView (read Qt Model/View). You should use the widget unless you need your own model. If QListView is what you want then get model, and remove, i.e.qListView.model().removeRow(row)
您应该使用模型
model = QStandardItemModel()
。然后,应将此模型分配给 QListViewlistView.setModel(model)
。因此,您可以直接在模型model.removeRow(row)
中进行删除,standardItem = model.item(row)
来获取值model.removeRow(row)
。 insertRow(0, standardItem) 用于插入到第一个位置。您还可以在 QStandardItemModel 类 中查看与模型一起使用的其他函数You should use a model
model = QStandardItemModel()
. Then, this model should be assigned to QListViewlistView.setModel(model)
. So, you could directly work in the modelmodel.removeRow(row)
for removing,standardItem = model.item(row)
for getting the value,model.insertRow(0, standardItem)
for inserting into the first position. You can also see additional functions to work with models in QStandardItemModel Class您应该使用模型,而不是视图。
请参阅 https://doc.qt.io/qt-4.8/qabstractitemmodel.html #删除行
You should use model, not view.
see https://doc.qt.io/qt-4.8/qabstractitemmodel.html#removeRow