мне нужно изменить отображение header так, чтобы в самой модели остались имена колонок без изменений, можно ли так сделать?
Иначе я переименовываю headerData и не могу потом работать нормально с содержимым
не вполне ясно, чего добиться нужно если необходимо отображение названий полей иначе, нежели название полей таблицы, то именно с помощью setHeaderData примерно так setHeaderData(fieldIndex("field_name"),Qt::Horizontal,tr("Your field Title"),Qt::DisplayRole);
Не подходит, при получении заголовка возвращает перевод Отображение должно измениться, а при обращении к заголовкам таблицы - получать первоначальные заголовки колонок
невнимательно доку читаешь, используй разные роли для разных случаев. пример: setHeaderData(fieldIndex("field_name"),Qt::Horizontal,tr("Your field Title"),Qt::DisplayRole); setHeaderData(fieldIndex("field_name"),Qt::Horizontal,field_name,Qt::EditRole); QString field_name = headerData(index, Qt::EditRole) Это вариант номер раз Вариант номер два: QSqlRecord record=tableModel->record(); QString field_name = record.fielName(index); index и там и там - номер столбца (номер поля таблицы в порядке выполнения запроса в selectStatement())
Обсуждают сегодня