我正在尝试设置QTableWidget行中的垂直标题项QTableWidgetItem的背景色和前景色。以下代码不适用于垂直标题项的QTableWidgetItem,即使相同的代码适用于常规单元格的QTableWidgetItem也是如此。
我在Fedora 17 x64 Gnome3.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是垂直标题项时,此代码不做任何更改,但当它是常规单元格时,它具有所需的效果。如何设置垂直表头项目的背景和前景?
发布于 2013-06-01 00:11:51
我认为你可以通过知道它是"AccessibleName“来轻松地定位特定的项目,你可以尝试这样做:
QTableWidgetItem#YourAccessibleName {
/* style definitions */
}发布于 2014-07-16 16:31:51
在关于相同主题的问题Is it possible to change the colour of a QTableWidget row label?中,但是对于PyQt,我的解决方案是获取垂直标题的QTableWidgetItem,并在那里设置背景和前景,但是只有前景改变了,背景保持了平滑的灰色渐变。可能样式覆盖/忽略了背景。指定不同的样式(例如,Cleanlooks)可以修复它。
因此,在表小部件的构造中添加一些内容
QTableWidget::verticalHeader().setStyle(QStyleFactory::create("CleanLooks"))https://stackoverflow.com/questions/16819475
复制相似问题