设置QAbstractTableModel表头背景色的问题
-
@
QVariant TableModel::headerData(int section, Qt::Orientation orientation, int role) const
{
if(role ==Qt::BackgroundRole)
{
//if(orientation == Qt::Vertical)
if (orientation == Qt::Horizontal)
switch (section)
{
case 0:
return QBrush(QColor(Qt::blue));
case 1:
return QVariant(QColor(Qt::blue));
default:
return QAbstractTableModel::headerData(section,orientation,role);
}
@可以设置headerData的字体颜色,字体加粗。data的字体颜色,背景色,字体风格等。
但是就是不能设置headerData的背景色。
setStyleSheet设置背景色可以起作用,但是我要根据用户的操作动态的来设置其中的某几个个列或者几个行的表头背景色。
这个问题在CSDN发帖了,但是解决不了所以又跑到这里来问了,希望大家help一下。
3Q -
帮你到general and desktop版块提问了。如果英文好的话,可以直接在上面的版块提问。
"链接在这里":http://qt-project.org/forums/viewthread/28869/ -
谢谢你,我也在general and desktop里发帖了,还写了个测试用例。
网址在这里
http://qt-project.org/forums/viewthread/28901/
[quote author="jiangcaiyang" date="1371225584"]帮你到general and desktop版块提问了。如果英文好的话,可以直接在上面的版块提问。
"链接在这里":http://qt-project.org/forums/viewthread/28869/[/quote] -
如果这些都不行的话,试一试去掉表头,使用第一行作为表头,并且修改其中的背景色。
-
[quote author="csding" date="1371431494"]嗯,不过那个功能现在不做了,问题是不知道这算不算Qt的bug,作为一个开发平台,如果这些问题不修复,让下游开发者来解决这些事情,本来就是扯蛋。
还是感觉用主流的开发平台要好很多,比如MFC,尽管不跨平台。
[quote author="jiangcaiyang" date="1371388450"]如果这些都不行的话,试一试去掉表头,使用第一行作为表头,并且修改其中的背景色。[/quote][/quote]
一般的表格都有一个现象,表头在选中的时候,字体会变成粗体。这种情况也无法改变。但是我不同意你说这个是Qt的Bug,因为它并不引起任何影响用户体验的效果。如果偏要说是Bug的话,按照Bug分类也只能算是最后一类,也是影响最小的一类,算是建议。可以熟悉一下Jira,Qt的Bug协作平台,希望能多为qt-project做贡献。我知道在它上面可以提出很多建设性的意见,就像发帖一样,我想会有管理员受理你的提案的。 -
问题是他文档里写的很清楚,表头也有那些background role的,这就是说它支持更改背景,但是现在这种方式更改不了。而且我觉得这也是基本功能吧。写了个测试小用例,已经创建了一个bug提交了,"在这里":https://bugreports.qt-project.org/browse/QTBUG-31804
[quote author="jiangcaiyang" date="1371457069"]
[quote author="csding" date="1371431494"]嗯,不过那个功能现在不做了,问题是不知道这算不算Qt的bug,作为一个开发平台,如果这些问题不修复,让下游开发者来解决这些事情,本来就是扯蛋。
还是感觉用主流的开发平台要好很多,比如MFC,尽管不跨平台。
[quote author="jiangcaiyang" date="1371388450"]如果这些都不行的话,试一试去掉表头,使用第一行作为表头,并且修改其中的背景色。[/quote][/quote]
一般的表格都有一个现象,表头在选中的时候,字体会变成粗体。这种情况也无法改变。但是我不同意你说这个是Qt的Bug,因为它并不引起任何影响用户体验的效果。如果偏要说是Bug的话,按照Bug分类也只能算是最后一类,也是影响最小的一类,算是建议。可以熟悉一下Jira,Qt的Bug协作平台,希望能多为qt-project做贡献。我知道在它上面可以提出很多建设性的意见,就像发帖一样,我想会有管理员受理你的提案的。[/quote]