Делаю свою модель дерева. И не могу понять почему при щелчке мышью на корневых элементах, выделяется вся строка. А на дочерних не выделяется последний столбец.
Вот картинки
Щелчёк по первому столбцу:
 РЈРСВВВВВВВеньшено Р В Р’В Р СћРІР‚ВВВВВВР С• 50%
524 x 242 (3.22 килобайт)
|
 РЈРСВВВВВВВеньшено Р В Р’В Р СћРІР‚ВВВВВВР С• 50%
522 x 262 (3.29 килобайт)
|
Щелчёк по последнему столбцу:
 РЈРСВВВВВВВеньшено Р В Р’В Р СћРІР‚ВВВВВВР С• 50%
525 x 229 (3.14 килобайт)
|
 РЈРСВВВВВВВеньшено Р В Р’В Р СћРІР‚ВВВВВВР С• 50%
523 x 256 (3.2 килобайт)
|
Из снимков видно, что при щелчке по последнему столбцу появляется рамка вокруг ячейки, но синенького выделения в дочернем элементе нету.
Хотелось бы понять, что отвечает за возможность выделения. Я полагаю, что за это отвечают только флажки, но в этом месте модели у меня всё одинаково:
Qt::ItemFlags EntityModel::flags(const QModelIndex &index) const
{
icnt++;
qDebug() << indent() << "EntityModel::flags(index =" << index
<< "[ Object =" << idx(index)
<< "])";
Qt::ItemFlags result;
if (!index.isValid()){
result = 0;
qDebug() << indent() << "EntityModel::flags =" << result;
icnt--;
return result;
}
result = Qt::ItemIsEnabled | Qt::ItemIsSelectable;
qDebug() << indent() << "EntityModel::flags =" << result;
icnt--;
return result;
}
П.С.
Проверено на:
Win 2k SP4, Win XP SP2
Qt: 4.4.3, 4.5.3, 4.6.x (недавнее из git'а)
похоже начал приближаться к решению.
Добавил фиктивные данные (на ещё один столбец), и не выделяется всегда только последний столбец.