我正在尝试设置QTableWidgetItem
的背景和前景色,这是我QTableWidget
行中的垂直标题项。以下代码不适用于作为垂直标题项的QTableWidgetItem
,即使相同的代码适用于作为常规单元格的QTableWidgetItem
。
我在Fedora 17 x64 Gnome 3.4上使用Qt 4.8
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 :(得分:0)
我认为您可以通过知道“AccessibleName”轻松定位特定项目,您可以尝试这样做:
QTableWidgetItem#YourAccessibleName {
/* style definitions */
}
答案 1 :(得分:0)
关于相同主题的问题Is it possible to change the colour of a QTableWidget row label?但对于PyQt我的解决方案是获取垂直标题的QTableWidgetItem
并在那里设置背景和前景,但是只更改了前景,背景保持平滑的灰色渐变。可能风格是覆盖/忽略背景。指定不同的样式(例如Cleanlooks)修复了它。
所以添加类似于表格小部件的构造
QTableWidget::verticalHeader().setStyle(QStyleFactory::create("CleanLooks"))