Ответ 1
cmannett85 рекомендация хорошая. Прочитайте документы около десяти раз.
Затем, если проблемы с производительностью и памятью являются вашей главной задачей, и вы считаете, что можете выполнить реализацию QTableWidget, затем QTableView интерфейс поверх QAbstractTableModel или QStandardItemModel - это то, что вы ищете.
Поскольку вы новичок в архитектуре модели Qt, я бы рекомендовал использовать QStandardItemModel, пока не почувствуете, что вы ее повесили. Если ваша производительность по-прежнему недостаточно хороша, избегайте большого объема дублирования памяти и теряя впустую объекты, реализуя свою собственную модель. Кроме того, получите хороший учебник и прочитайте его главу о рамочной структуре модели примерно в 12 раз. Этот раздел сам по себе стоил своего веса в золоте, имхо.
Ниже приведены основы для модели Qt с учетом модели:
- Ваши фактические данные хранятся в списке/дереве где-то
- модель предоставляет стандартную структуру для запросов и исправлений для ваших данных.
- Прокси-модели позволяют сортировать/фильтровать ваши данные, не влияя на исходную модель.
- представление обеспечивает визуальное наблюдение и взаимодействие с вашими данными.
- Делегаты (часто необязательно) настраивают внешний вид ваших данных и предоставляют настраиваемые редакторы для данных
Если вы чувствуете себя как дешево, но и смело, посмотрите этот отрывок на реализацию своей собственной модели. Работайте с ней по одной функции одновременно и играйте с ней, когда идете.