Я пытаюсь установить цвет фона и переднего плана QTableWidgetItem
это элемент вертикального заголовка в строке моего QTableWidget
, Следующий код не работает для QTableWidgetItem
это вертикальный элемент заголовка, хотя тот же код хорошо работает для QTableWidgetItem
это обычная клетка.
Я использую Qt 4.8 на Fedora 17 x64 Gnome 3.4
static const QBrush AddedCellBackground = Qt::yellow;
static const QBrush AddedCellForeground = Qt::red;
void rowSelected()
{
QTableWidgetItem *vertHeadItem = _getSelectedItemVerticalHeader();
vertHeadItem->setForeground( AddedCellForeground );
vertHeadItem->setBackground( AddedCellBackground );
}
Этот код не вносит изменений, когда vertHeadItem
является вертикальным элементом заголовка, но он имеет желаемый эффект, когда это обычная ячейка. Как я могу установить фон и передний план вертикального элемента заголовка?
Я думаю, что вы можете легко ориентироваться на определенные элементы, зная, что это «AccessibleName», вы можете попробовать это:
QTableWidgetItem#YourAccessibleName {
/* style definitions */
}
В вопросе Можно ли изменить цвет метки строки QTableWidget? о той же теме, но для PyQt мое решение было получить QTableWidgetItem
вертикального заголовка и установите фон и передний план там, однако был изменен только передний план, фон оставался плавным серым градиентом. Вероятно, стиль переопределял / игнорировал фон. Задание другого стиля (например, Cleanlooks) исправило его.
Так что добавьте что-то вроде в конструкцию виджета таблицы
QTableWidget::verticalHeader().setStyle(QStyleFactory::create("CleanLooks"))