Насколько я знаю, прямого решения данная проблема не имеет. А вот вариантов, как это реализовать — довольно много.
1.
Использовать QML. Вот, есть пример. Но я с ним не разбирался.
2. Добавлять
виджеты для каждой строки в treeView. Решение на самом деле довольно кривое, потому что сразу появляются проблемы синхронизации виджетов с моделью. Сами разработчики пишут, что
This function should only be used to display static content within the visible area corresponding to an item of data. If you want to display custom dynamic content or implement a custom editor widget, subclass QItemDelegate instead.
К тому же, есть вероятность, что при числе строк в модели порядка нескольких тысяч, все начнет тормозить.
3.
Разработать полноценный делегат.
Нужно будет переопределить не только paint, но и установить eventFilter на treeView.
4. Отображать кнопки только на время редактирования, при этом можно настроить
editTriggers.
5. Открывать редактор
принудительно.