crossplatform.ru

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


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

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

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


Последние 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 Текстовая версия Сейчас: 29.3.2024, 16:48