我似乎无法在QTableView中获得Header的颜色。我尝试了很多不同的方法,但是似乎都没有。我可以帮忙。
这是我的代码:
tableView = new QTableView;
tableView->setStyleSheet("color: rgb(255, 0, 0);"
"border: 1px solid rgb(255, 0, 0);"
"gridline-color: rgb(255, 0, 0);"
"background-color: rgba(0, 0, 0, 0);"
"QHeaderView::section { background-color:black }");
我愿意接受任何想法吗?
答案 0 :(得分:0)
我不知道可以在样式表的上下文中用于包含视图的任何QHeaderView::section
指令(例如QTableView
,QListView
等)。我认为您需要显式设置QHeaderView
样式表...
tableView = new QTableView;
tableView->setStyleSheet("color: rgb(255, 0, 0);"
"border: 1px solid rgb(255, 0, 0);"
"gridline-color: rgb(255, 0, 0);"
"background-color: rgba(0, 0, 0, 0);");
tableView->horizontalHeader()->setStyleSheet("background-color: black;");
答案 1 :(得分:0)
您的代码没有错。根据官方文档,它必须正常工作。
QSS HeaderView指令定义了QHeaderView
类的属性:
tableView->setStyleSheet("QHeaderView::section {
background-color: red;
color: white;
border: 1px solid #6c6c6c;
}");
或者,您可以直接修改QHeaderView
部分的属性:
tableView->horizontalHeader()->setStyleSheet("::section {
background-color: red;
color: white;
border: 1px solid #6c6c6c;
}");
如果要更改整个标题的背景,请使用:
tableView->horizontalHeader()->setStyleSheet("background-color: black;");
答案 2 :(得分:0)
这个问题的答案在其他答案中,但是它们还包含误导性代码(无论如何,在我的机器上:Win7x64)。
这是行之有效的,而哪些行不通(再次对我而言)。
此代码对标题无任何作用:
tableView->horizontalHeader()->setStyleSheet("background-color: black;");
此代码有效,但也更改了整个QTableView小部件的边框:
tableView->setStyleSheet("QHeaderView::section {
background-color: red;
color: white;
border: 1px solid #6c6c6c;
}");
此代码按预期工作:
tableView->horizontalHeader()->setStyleSheet("QHeaderView::section { background-color: rgb(40, 0, 0) }");
此代码也有效,是上述代码的变体:
tableView->horizontalHeader()->setStyleSheet("::section { background-color: rgb(40, 0, 0) }");