Russian Qt Forum
Ноябрь 26, 2024, 00:58 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: изменить цвет текста в QTableWidget  (Прочитано 11343 раз)
Владимир99
Гость
« : Июль 06, 2013, 11:17 »

Здравствуйте!
как изменить цвет текста в QTableWidget (Qt 4.7.2 )
Спасибо.
Записан
alex312
Хакер
*****
Offline Offline

Сообщений: 606



Просмотр профиля
« Ответ #1 : Июль 06, 2013, 13:23 »

как вариант, вместо QTableWidgetItem использовать QLabel, которые могут отображать HTML



http://qt-project.org/doc/qt-4.8/demos-spreadsheet.html
« Последнее редактирование: Июль 06, 2013, 13:27 от alex312 » Записан
Владимир99
Гость
« Ответ #2 : Июль 08, 2013, 14:42 »

Спасибо, но
- рекомендация относится к Qt 4.8;
- Хотелось бы именно взять указатель на  и посредством его как то поменять цвет. Например, я могу посредством
      QFont m_fontBold;
     m_fontBold.setBold(true);
     table->item(row,column0)->setFont(m_fontBold);
   установить жирный текст.
  Но не нашел как поставить цвет в QFont.
  Также и в QTableWidgetItem не нашел регулировку цвета.
  Как последний вариант, можно создат подкласс QTableWidgetItem и переопределить paintEvent(), но не слишком ли накладно для всего лишь такой мелочи. Или, выходит, не такая уж это и мелочь?
Записан
Bepec
Гость
« Ответ #3 : Июль 08, 2013, 14:45 »

Код:
setData(Qt::BackgroundColorRole, Qt::Blue);
?
Записан
Владимир99
Гость
« Ответ #4 : Июль 08, 2013, 14:46 »

Сорри!
Не "указатель на", а указатель на QTableWidgetItem. Забыл paste-нуть.  Улыбающийся
Записан
Bepec
Гость
« Ответ #5 : Июль 08, 2013, 15:03 »

Код:
setData(Qt::TextColorRole, Qt::Red);
?
Записан
Владимир99
Гость
« Ответ #6 : Июль 08, 2013, 15:10 »

Уже ближе, но Qt::BackgroundColorRole влияет на цвет фона всей ячейки. Я пошел по аналогии и задал Qt::FontRole, но это не подействовало. Грустный
Записан
Bepec
Гость
« Ответ #7 : Июль 08, 2013, 15:12 »

Код:
setData(Qt::TextColorRole, Qt::Red);
?
Записан
VPS
Гость
« Ответ #8 : Июль 08, 2013, 15:13 »

Код:
QTableWidgetItem::setForeground(QBrush(QColor(255, 0, 0)));
?
Записан
Владимир99
Гость
« Ответ #9 : Июль 08, 2013, 15:22 »

С Qt::TextColorRole все получилось.
Еще раз спасибо.
P.S. В Qt 4.7.2 требуется Qt::red.
P.S.S. Выясняется, что в Qt не все лежит на поверхности - надо привыкать к ее/его стилю.
Записан
Bepec
Гость
« Ответ #10 : Июль 08, 2013, 15:25 »

Надо просто идеологию понять. Показает язык
Записан
CuteBunny
Гость
« Ответ #11 : Июль 08, 2013, 15:28 »

+1
Идеология простая - rtfmd
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.13 секунд. Запросов: 23.