在样式表中将属性设置为另一个属性的值?

时间:2011-10-20 19:02:17

标签: qt qt4

我想设置QTableWidget的“!active”背景颜色以匹配“活动”颜色。我试着这样做:

QTableWidget::item:selected:!active{
background-color:QTableWidget::item:selected:active;
}

但它似乎不起作用。有没有办法将属性的值设置为另一个属性的值?

谢谢,

大卫

1 个答案:

答案 0 :(得分:0)

无法在样式中引用其他样式。我可以想到两个选择:

1)从代码中修改QTableWidget的QPalette。 QPalette对象将允许您访问您正在寻找的属性。

QPalette palette = myTableWidget->palette();
palette.setColor( QPalette::Inactive, QPalette::Highlight, palette.color(QPalette::Active, QPalette::Highlight) );
palette.setColor( QPalette::Inactive, QPalette::HighlightedText, palette.color(QPalette::Active, QPalette::HighlightedText) );
myTableWidget->setPalette( palette );

2)使用一些QString魔法:

 QString styleSheet = QString( "QTableWidget::item:selected:active { %1 }"
                               "QTableWidget::item:selected:!active { %1 }" )
                               .arg( "style_for_both_items" )