Как изменить цвет фона из заголовка (горизонтальный / вертикальный) QTableWidget на Qt?

Я хотел бы знать, как изменить цвет фона из заголовков (горизонтальный / вертикальный) от объекта QTableWidget на Qt,

Я уже знаю, как изменить все заголовки вместе, используя:

ui->tableWidget->setStyleSheet("QHeaderView::section {background-color:red}");

Но мне нужно изменить индивидуально пункты. Очевидно, если это возможно.

0

Решение

Есть как минимум 2 способа решить эту проблему. Очень просто:

Просто используйте setHeaderData() и установить конкретные цвета для определенных разделов.

QTableView *tview = new QTableView;

QStandardItemModel *md = new QStandardItemModel(4, 4);
for (int row = 0; row < 4; ++row) {
for (int column = 0; column < 4; ++column) {
QStandardItem *item = new QStandardItem(QString("row %0, column %1").arg(row).arg(column));
md->setItem(row, column, item);
}
}
tview->setModel(md);
tview->model()->setHeaderData(0,Qt::Horizontal,QBrush(QColor("red")),Qt::BackgroundRole);
tview->show();

Но, к сожалению, это не будет работать на некоторых системах … Qt использует стиль платформы. Например, моя Windows не позволяет изменить цвет заголовка. Так что этот код не работает на моей машине. К счастью, это легко решается изменением глобального стиля. Итак, следующий код работает:

//... same code ...
tview->show();
QApplication::setStyle(QStyleFactory::create("Fusion"));

Если вы не хотите менять стиль, то вы должны создать свой собственный HeaderView, Возможно, что-то похожее на Вот.

2

Другие решения


По вопросам рекламы [email protected]