Сделал поделку на QTreeView и QStandardItemModel:
Если коротко показывается корреляция между странами по какому-то параметру (допустим, величина торговых отношений). Чем больше этот параметр, тем ярче цвет в ячейке. При выборе ячейки соответствующие страны выделяются. Все вроде хорошо, но не могу сделать оставшиеся "мелочи":
1) Цветные ячейки сделать все одного размера.
Пытался сделать в методе data вот это, не помогло:
if (role == Qt::SizeHintRole)
{
if (isColorCell())
return QSize(50, 50);
}
2) Ячейки с текстом сделать растягивающимися по величине текста, не изменяя размера соответствующих цветных ячеек (если это возможно).
3) Изменить цвет при выделении (сейчас стандартный виндовый). Обрабатываю событие клика мыши по цветной ячейке и выделяю все цветные, лежащие с ней на одной строке и столбце. Цвет выделения закрывает внутренний цвет ячейки. Хотелось бы сменить цвет выделения на менее яркий и сделать его почти прозрачным.
Пытался сделать так в конструкторе вьюшки, но цвет выделения не изменился:
QPalette p = palette();
p.setColor(QPalette::Highlight, QColor("#FFFFCC"));
p.setColor(QPalette::HighlightedText, Qt::black);
setPalette(p);
К слову выделяю ячейки так:
selectionModel()->select(index, QItemSelectionModel::ClearAndSelect |
QItemSelectionModel::Rows |
QItemSelectionModel::Columns);
4) Сделать белую рамку в пару пикселей между цветными ячейками, чтобы цвета не сливались.
Буду благодарен подсказанькам.