![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Steklova Olga |
![]()
Сообщение
#1
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 198 Регистрация: 27.9.2011 Из: Санкт-Петербург Пользователь №: 2912 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
Привет!
![]() В моей модели переопределены две роли элементов. При переопределении одной роли элемента модели мне надо использовать информацию о другой роли этого элемента. А именно, для одной из колонок модели цвет текста элемента модели должен быть красным, если значение соотв. поля в соотв. записи таблицы БД равно 1. К тому же, отображение значения этого поля тоже должно быть переопределено (если значение соотв. поля в соотв. записи таблицы БД равно 1, то вместо 1 надо отобразить ВАЖНЫЙ, иначе надо отобразить ОБЫЧНЫЙ). В справке сказано ![]() передав ей модельный индекс, соответствующий элементу, и задав роль для получения данных желаемого типа: QVariant value = model->data(index, role); Но мне нужно сделать это при переопределении метода data модели. Вот мой код:
А вот что я не понимаю: ![]() 1. Метод data, который я переопределяю, вызывается для каждой из ролей, которые вообще существуют для модели? 2. Порядок вызова метода data для ролей одного и того же элемента модели - непредсказуем? 3. При переопределении метода data можно писать: но можно ли писать так: или так (что то же самое): 4. Можно ли при переопределении роли Qt::ForegroundRole проверять равенство (valueForDisplayRole.toInt() == 1) ?Совсем глупый вопрос: на это не влияет то, что при переопределении роли case Qt::DisplayRole я заменила отображение 1 на "ВАЖНЫЙ"? Спасибо за внимание ![]() |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 17.2.2025, 4:40 |