У меня следующая проблема.
Я пытаюсь реализовать модель для моего QTreeView, которая бы динамически загружала данные из таблицы sql.
Таблица выглядит так:
CREATE TABLE xcmObjects
(
id INT AUTO_INCREMENT PRIMARY KEY NOT NULL,
id_parent INT DEFAULT 0 NOT NULL ,
title TEXT
);
id_parent содержит идентификатор родительской записи - поэтому они образуют структуру.
Я бы хотел, чтобы моя модель загружала данные из этой таблицы только при необходимости. Другими словами, я не хочу загружать всю структуру в память, вместо этого я не хочу читать дочерние элементы только тех узлов, которые были открыты пользователем.
QSqlQueryModel и QSqlTableModel, похоже, работают только для плоских таблиц.
Я думаю, что одним из решений этой проблемы было бы реализовать собственный класс QAbastractItemModel и внутри хранилища отдельные экземпляры QSqlQueryModel для каждого открытого узла (включая невидимого родителя верхнего уровня). А затем переписать каждый метод и направить запросы в соответствующие модели.
Может быть, есть более простое решение? : -)
Спасибо за помощь.