2013-05-29 3 views
0

Я пытаюсь установить цвет фона и переднего плана QTableWidgetItem, который является элементом вертикального заголовка в строке моего QTableWidget. Следующий код не работает для QTableWidgetItem, который является элементом вертикального заголовка, хотя тот же код отлично работает для QTableWidgetItem, который является обычной ячейкой.Как задать цвет фона и переднего плана строки QTableWidget Вертикальный заголовок Item

Я использую 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 представляет собой вертикальный элемент заголовка, но это желаемый результат, если это обычный сотовый. Как установить фон и передний план вертикального элемента заголовка?

+0

К сожалению, нет ничего принуждая 'QStyle' в использовании, чтобы использовать палитру, цвет может быть зашит в самом стиль. Трудно узнать, не глядя на исходный код для него ('QGtkStyle', я думаю). – cmannett85

+0

Работает ли стиль? См. [This] (http://harmattan-dev.nokia.com/docs/library/html/qt4/stylesheet-examples.html#customizing-qheaderview) для примера. – thuga

+0

@thuga Мне удалось получить таблицы стилей, чтобы изменить BG, но я все еще пытаюсь понять, как сделать это применимым только к определенным строкам. –

ответ

0

Я думаю, что вы можете легко ориентироваться на конкретные предметы, зная, что это «AccessibleName», вы можете попробовать это:

QTableWidgetItem#YourAccessibleName { 

/* style definitions */ 

} 
+0

Как я могу получить/установить доступное имя? –

+0

Похоже, что не-'QObject' не может иметь доступные имена –

0

В вопросе Is it possible to change the colour of a QTableWidget row label? об одной и той же теме, но для PyQt мое решение было получить QTableWidgetItem из вертикальный заголовок и установить фон и передний план там, однако изменился только передний план, фон остался ровным серым градиентом. Вероятно, стиль был переопределяющим/игнорирующим фон. Указав другой стиль (например, «Чистые точки зрения»), он исправил это.

Так добавить что-то, как и в конструкции стола виджета

QTableWidget::verticalHeader().setStyle(QStyleFactory::create("CleanLooks")) 
+0

Не уверен в синтаксисе, не очень знакомый с синтаксисом C++. – Trilarion

 Смежные вопросы

  • Нет связанных вопросов^_^