Написал я конструктор модели, унаследованный от 
QStandardItemModel. Модель подразумевается древовидная. В нем 
shortcutManager.availableSection - просто 
QStringList с названиями разделов «верхнего» уровня:
ShortcutSettingsModel::ShortcutSettingsModel(QObject *parent) : QStandardItemModel(parent)
{
    // Создание разделов
    foreach(QString sectionName, shortcutManager.availableSection) {
        QStandardItem *sectionItem=new QStandardItem(sectionName);
        this->appendRow(sectionItem);
    }
}
Конструктор работает, строки в виде появляются.
А потом думаю: нет, эдак у меня память потечет, потому что если сделать 
clean() в деструкторе, то очистится модель, а удалятся ли из кучи вставленные в нее 
QStandardItem - неизвестно. Придется городить рекурсивную очистку элементов, ну его нафиг.
Поэтому переписал конструктор вот так:
ShortcutSettingsModel::ShortcutSettingsModel(QObject *parent) : QStandardItemModel(parent)
{
    // Создание разделов
    int nSection=shortcutManager.availableSection.size(); // Количество разделов
    this->insertRows(0, nSection, QModelIndex()); // Вставка строк для разделов
    for(int i=0; i<nSection; ++i) {
        QModelIndex index=this->index(i, 0);
        QString sectionName=shortcutManager.availableSection.at(i);
        this->setData(index, sectionName); // Установка значения строки
    }
}
Но с таким кодом строк дерева в виде не видно.
Я подозреваю, что проблема в методе 
insertRows(). Третьим параметром он принимает индекс элемента, для которого создаются «подчиненные» элементы. Проблема в том, в концепции 
QStandardItemModel нет специального индекса для корня дерева. Есть только невалидный индекс, и предполагается, что ячейки первого уровня просто имеют невалидный индекс родителя.
Тогда возникает вопрос: а как блин создать ячейки первого уровня, если 
insertRows() требует индекс корневого элемента, но у нас его нет? Я пробую указать невалидный индекс как 
QModelIndex(), это прокатывает при компиляции, но во время работы толку от этого индекса нет.
Еще заметил, что когда крутится цикл, конструкция
все время возвращает одно и тоже значение, несмотря на то, что 
i меняется.
Получается, что метод 
insertRows() невозможно применить для корня дерева, а можно применять только для элементов, которые уже есть в дереве. А как добавлять эти самые первичные элементы?