You can use QStandardItemModel which supports tree structures and is editable. If you want to implement edit capabilities to the simple tree model, you'll have to implement insertRow() and removeRow() methods and make them add/remove items from the internal QList. Additionally you'll have to implement setData() to operate on the list changing its contents and make flags() return ItemIsEditable (among other values) for items you want editable.