crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Собственная TreeModel, проблемы с выделением в представлении
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 13.5.2010, 13:03
  я уже откопал проблему. Резюме:
ни в коем случае не смотрите пример Simple Tree Model, он не правильный.
Лучше смотреть пример Editable Tree Model, хотя и он оставляет желать лучшего.
проблема была в функции columnCount, нужно всегда возвращать кол-во столбцов, как и в заголовке, иначе возникают разные чудеса
DEADHUNT Дата 13.5.2010, 7:21
  QAbstractItemView::SelectionBehavior посмотри.
Litkevich Yuriy Дата 13.5.2010, 1:35
  Делаю свою модель дерева. И не могу понять почему при щелчке мышью на корневых элементах, выделяется вся строка. А на дочерних не выделяется последний столбец.
Вот картинки
Щелчёк по первому столбцу:
 Р В Р’ Р’ Р’ Р в‚¬Р В РЎВ˜Р В Р’µР Р…ьшено Р Т‘Р С• 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'а)

похоже начал приближаться к решению.
Добавил фиктивные данные (на ещё один столбец), и не выделяется всегда только последний столбец.
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 10.7.2025, 4:25