crossplatform.ru

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


  Ответ в setBackground для заголовка QTableWidget
Введите ваше имя
Подтвердите код

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

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


Последние 10 сообщений [ в обратном порядке ]
Алексей1153 Дата 13.2.2018, 8:15
  tradmir@mail.ru, думаю, там магия. Самая обычная магия)

tradmir@mail.ru Дата 12.2.2018, 7:51
  Я наверное о другом:
Эта связка
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 Дата 6.2.2018, 7:45
  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);


Не компилировал и не тестировал, могут быть опечатки :)
tradmir@mail.ru Дата 5.2.2018, 19:47
  И такая интересная фича:
На первой машине стоит 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);
После этого можно установить один цвет для всей таблицы, заголовок и клеток. Поменять цвет в отдельном заголовке не удается, в любой клетке можно

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

С уважением,
Радмир
tradmir@mail.ru Дата 26.1.2018, 22:29
  Хочу задать цвет фона для заголовка колонки в QTableWidget.
Цвет вроде ставится, но чем-то подавляется, цвет шрифта задается.

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

С уважением,
Радмир
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 15.7.2025, 8:31