Хранение данных в объектах типа «элемент»

We use cookies. Read the Privacy and Cookie Policy

Хранение данных в объектах типа «элемент»

В приложении Электронная таблица каждая непустая ячейка хранится в памяти в виде одного объекта QTableWidgetltem (элемент табличного виджета). Хранение данных в объектах типа «элемент» используется также виджетами QListWidget и QTreeWidget, которые работают с объектами QListWidgetItem и QTreeWidgetItem.

В Qt классы элементов могут использоваться вне таблиц как самостоятельные структуры данных. Например, QTableWidgetltem уже содержит некоторые атрибуты, в том числе строку, шрифт, цвет и пиктограмму, а также обратный указатель на QTableWidget. Такие элементы могут содержать также данные типа QVariant, включая зарегистрированные пользовательские типы, и, создавая подкласс такого элемента, можно обеспечить дополнительную функциональность.

Другие инструментальные средства предусматривают наличие в классах элементов указателя типа void для хранения пользовательских данных. В Qt используется более естественный подход с применением setData() для типа QVariant, однако если требуется иметь указатель void, это можно сделать просто путем создания подкласса для класса элемента, который будет содержать переменную—указатель на член типа void.

Для данных, к которым предъявляются повышенные требования, например для больших наборов данных, для сложных элементов данных, для интеграции баз данных и для множественных представлений данных, Qt предоставляет набор классов «модель/представление», в которых данные отделены от их визуального представления. Эти классы рассматриваются в главе 10.