Название: выделить жирным некоторые строчки таблицы Отправлено: chester от Декабрь 20, 2011, 08:25 Добрый день!!!
Хочу некоторые строчки выделить жирным. Перегружаю метод data() в модели, но не получается ((( Вот так делаю Код В итоге получаются краказябры.. Что я делаю не так? Вроде на форуме писали такое решение Название: Re: выделить жирным некоторые строчки таблицы Отправлено: ddrtn от Декабрь 20, 2011, 08:44 Код: Variant data(const QModelIndex &index,int role = Qt::DisplayRole) const{ А вообще, терзают меня смутные сомнения на счет кода. а конкретно this->data, this->index Название: Re: выделить жирным некоторые строчки таблицы Отправлено: chester от Декабрь 20, 2011, 08:52 Спасибо за ответ
А вообще, терзают меня смутные сомнения на счет кода. а конкретно this->data, this->index надо без this их использовать да?Пробую Ваш код, но выдается ошибка, что не может преобразовать QVariant в QFont Название: Re: выделить жирным некоторые строчки таблицы Отправлено: ddrtn от Декабрь 20, 2011, 09:03 QParentModel::data(index, role).value<QFont>();
Название: Re: выделить жирным некоторые строчки таблицы Отправлено: ddrtn от Декабрь 20, 2011, 09:08 А вообще без this.
Но при вызове data будет вызываться эта же функция. так что нужно контролировать рекурсивный выход или вызывать Q<ParentModel>::data. Более того. если вызывать index.data() или index().data(), то будет вызываться эта же функция data(). Название: Re: выделить жирным некоторые строчки таблицы Отправлено: chester от Декабрь 20, 2011, 09:11 QParentModel::data(index, role).value<QFont>(); Спасибо ... только вот все-равно краказябры получаются (( Название: Re: выделить жирным некоторые строчки таблицы Отправлено: kambala от Декабрь 20, 2011, 09:45 2ddrtn: не нужно запрашивать значение из базового класса 2 раза - в самом начале же уже написано получение значения из QSqlQueryModel. и использование this в данном случае абсолютно нормально - значение для тултипной роли (второй параметр, число 3) будет взято из базового класса.
В итоге получаются краказябры.. твой код правильный, но как-то подозрительно, что жирность шрифта влияет на сам шрифт... а без жирности отображается нормально? или может используемый шрифт просто не умеет показывать жирным? попробуй для теста курсивом выделить.Название: Re: выделить жирным некоторые строчки таблицы Отправлено: chester от Декабрь 20, 2011, 10:00 твой код правильный, но как-то подозрительно, что жирность шрифта влияет на сам шрифт... а без жирности отображается нормально? или может используемый шрифт просто не умеет показывать жирным? попробуй для теста курсивом выделить. Без выделения все нормально. А при выделении строчка выделяется, но с краказябрамиНазвание: Re: выделить жирным некоторые строчки таблицы Отправлено: andrew.k от Декабрь 20, 2011, 10:44 Это не поможет, но все-таки:
Код Нужно добавить break; так как return все-таки под условием, и может проходить дальше. И на BackgroundRole будет возвращаться FontRole. Сейчас последствий нет, т.к. в обоих кейзах одинаковое условие. Название: Re: выделить жирным некоторые строчки таблицы Отправлено: ddrtn от Декабрь 20, 2011, 10:57 твой код правильный, но как-то подозрительно, что жирность шрифта влияет на сам шрифт... а без жирности отображается нормально? или может используемый шрифт просто не умеет показывать жирным? попробуй для теста курсивом выделить. Жирность не влияет. Просто при возврате QFont::Bold Возвращается шрифт, который создается заново. с настройками по умолчанию кроме свойства weight. Название: Re: выделить жирным некоторые строчки таблицы Отправлено: ddrtn от Декабрь 20, 2011, 11:03 2kambala
2-й параметр 3 - это номер столбца. а роль там будет Qt::DisplayRole. а про то, что сначала получено value не обратил внимание, сорри. Название: Re: выделить жирным некоторые строчки таблицы Отправлено: chester от Декабрь 20, 2011, 11:47 Спасибо большое, ddrtn, все нормально рабтает ... по началу я ступил просто ))))
Нужно добавить break; так как return все-таки под условием, и может проходить дальше. И на BackgroundRole будет возвращаться FontRole. Сейчас последствий нет, т.к. в обоих кейзах одинаковое условие. Спасибо за замечание.... |