QTreeViewでアイテムをクリアにするために、「ボタンとかを作成して簡単に空っぽにしたいなー」と僕はよく思います。あと、ヘッダがほしいからQListViewでなく、QTreeViewを使うっというケースも多いです。
View系に設定したModelのヘルプを見ると「clear」があるので、ラッキー!っと早速試してみると、、、
なんということでしょう~Headerもろとも綺麗さっぱり広々としました(‘A`)
そこで、「QStandardItemModel」を継承して、アイテムだけ削除する「clearItem」を実装してみたいと思います!
class StandardItemModel(QtGui.QStandardItemModel): def __init__(self, *args, **kwargs): super(StandardItemModel, self).__init__(*args, **kwargs) def clearItem(self): self.removeRows(0, self.rowCount())
アイテムだけ消したい場合は、「removeRows」を使って、最初から終わりまで指定すればできちゃいます!最初は「0」固定で、終わりについては「self.rowCount()」を使って行数を調べればOKです。
使用していた「QStandardItemModel」を上記の「StandardItemModel」に切り替え、ボタンのスロットに指定していたメソッドを「clear」から「clearItem」に切り替えるといい感じになります!
今回は、QStandardItemModelをカスタマイズしましたが、View側に作っても使いやすいかもしれませんね!あ、でも役割の範囲を超えすぎですね、、、(;´∀`)