Qt5: как обновить данные в QTableWidget

106
18 декабря 2020, 04:00

Есть некоторая таблица в которую из базы данных через промежуточную структуру подгружаются данные(вектор объектов класса). В структуре данные обновляются. Как обновить значение в ячейке согласно тому, что есть в структуре?

Answer 1

В Qt есть заготовленные классы для промежуточных структур, в которые загружаются данные для отображения в таблицах, деревьях и других представлениях, в том числе определённых вами. Это называется Model/View Programming. Суть в том, что ваша "промежуточная структура" должна наследоваться от класса QAbstractItemModel и реализовывать его методы доступа к данным. В случае изменения каких-либо полей класс должен отправить сигнал dataChanged. В случае добавления-удаления строк нужно вызывать методы beginInsertRows, endInsertRows. При соединении модели с представлением методом QTableView::setModel, вам больше не нужно будет беспокоиться об изменениях в данных.

Кстати, для работы c таблицами из баз данных в Qt есть модель QSqlTableModel.

READ ALSO
Звёздочка (*) перед классом

Звёздочка (*) перед классом

Что означает такая конструкция?

93
Отловить сочетание клавиш в консоли

Отловить сочетание клавиш в консоли

1) Код должен быть или кроссплатформенный, или 2а варианта кода (под Windows и Linux)

132
Проблема с PlaySoundA

Проблема с PlaySoundA

Воспроизвожу звук так:

116