crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> setBackground для заголовка QTableWidget
tradmir@mail.ru
  опции профиля:
сообщение 26.1.2018, 22:29
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 30.12.2013
Пользователь №: 4019

Спасибо сказали: 5 раз(а)




Репутация:   0  


Хочу задать цвет фона для заголовка колонки в QTableWidget.
Цвет вроде ставится, но чем-то подавляется, цвет шрифта задается.

Кто знает, подскажите.

С уважением,
Радмир
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
tradmir@mail.ru
  опции профиля:
сообщение 5.2.2018, 19:47
Сообщение #2


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 30.12.2013
Пользователь №: 4019

Спасибо сказали: 5 раз(а)




Репутация:   0  


И такая интересная фича:
На первой машине стоит Windows XP 3SP 32-bit.
На второй то же самое.

На первой машине после вызова
ui->tableWidget->setStyleSheet("QTableWidgetItem {background-color: yellow;}");
цвет фона стал устанавливаться везде: а именно, на заголовках таблицы, на клетках, причем можно установить и в отдельной клетке или заголовке какой хотите вне зависимости от других мест.

На второй машине, цвет на заголовках удалось установить с помощью вызова:
QString ss = "QHeaderView::section { background: rgb(%1,%2,%3);}").arg®.arg(g).arg(B); //цвет задан в RGB
ui->tableWidget->setStyleSheet(ss);
После этого можно установить один цвет для всей таблицы, заголовок и клеток. Поменять цвет в отдельном заголовке не удается, в любой клетке можно

Можно ли верхними или нижними полушариями постигнуть такое поведение?

С уважением,
Радмир
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 6.2.2018, 7:45
Сообщение #3


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


tradmir@mail.ru, почитай тут http://doc.qt.io/archives/qt-5.5/stylesheet-syntax.html

можно попробовать варианты:

вариант 1) задать виджету заголовка свойство и по этому свойству покрасить

//задаём значение свойства
// тоже должно проканать, я думаю. Тут нужно будет проверять свойство [xxxx="1"]
//ui->tableWidget->horizontalHeader() ->SetProperty("xxxx","1");

//но можно уже и готовое свойство заюзать, например "windowTitle"
ui->tableWidget->horizontalHeader() ->setWindowTitle("needtopaint");

//красим по свойству "windowTitle"
QString s=QString("QHeaderView[windowTitle="needtopaint"]{background: %1}").arg(somecolor.name());
ui->tableWidget->viewport()->setStyleSheet(s);


вариант 2) покрасить все заголовки, лежащие непосредственно на виджете таблицы
QString s=QString("QWidget > QHeaderView{background: %1}").arg(somecolor.name());
ui->tableWidget->viewport()->setStyleSheet(s);


Не компилировал и не тестировал, могут быть опечатки :)

Сообщение отредактировал Алексей1153 - 6.2.2018, 7:56
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
tradmir@mail.ru
  опции профиля:
сообщение 12.2.2018, 7:51
Сообщение #4


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 30.12.2013
Пользователь №: 4019

Спасибо сказали: 5 раз(а)




Репутация:   0  


Я наверное о другом:
Эта связка
QString SS =QString("QHeaderView::section { background: rgb(%1,%2,%3);}").arg®.arg(g).arg(B);
qDebug() << SS;
ui->tableWidget->setStyleSheet(SS);

красит все заголовки в цвет GRB(r,g,B) на всех моих машинах, но на первой, я могу потом сменить цвет любого заголовка как захочу,
а на других машинах - нет, только все разом.

Почему? Исходный код один, OS одна, один дистрибут, Qt 5.3.1 с одного дистрибута.

Где зарыты камни?

С уважением,
Радмир
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 13.2.2018, 8:15
Сообщение #5


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


tradmir@mail.ru, думаю, там магия. Самая обычная магия)

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.11.2024, 20:22