【发布时间】:2016-03-09 14:11:58
【问题描述】:
我有一个包含 3 列的 QTableWidget。 2 列中有一些文本,但其中之一是空的,我希望它有背景颜色。我也希望单元格有边框。
如果我这样做了
int i = 0;
foreach (tableData el, data) {
//setting the first cell
ui->eventTable->setItem(i, 1, new QTableWidgetItem);
//ui->eventTable->item(i, 1)->setBackground(el.severityColor);
//ui->eventTable->item(i, 1)->setBackgroundColor(el.severityColor);
ui->eventTable->item(i, 1)->setData(
Qt::BackgroundRole,
QBrush(el.severityColor)
);
//setting the third cell
++i;
}
一切都按预期进行。
但如果在这段代码之前我尝试用
添加边框QString style(
"QTableWidget::item {"
"border: 1px solid white;"
"}"
);
ui->eventTable->setStyleSheet(style);
背景未设置。
我尝试了setBackground()、setBackgroundColor()(即使它已被弃用)和setData(),如代码所示,但结果是一样的。
我也试过setShowGrid(true)上面的样式表,但没有显示边框。
您可以通过创建一个 1 行 1 列的表格并尝试设置单元格的背景,然后添加边框样式表来重现这一点。
我错过了什么吗?我还应该尝试什么? 作为替代方案,我是否可以针对样式中的特定行/单元格,以便构建一个样式表字符串来满足我的需求?
编辑:
我可以在QTableWidget::item 中使用另一种样式并应用它们,问题是当我有边框时。
我还尝试将边框样式写为:
border-width: 1px;
border-style: solid;
border-color: white;
但仍然没有运气。 此外,如果我从样式设置背景,它也可以工作。如果我在代码中设置它不起作用。
【问题讨论】:
标签: qt qt4 qtablewidget qtablewidgetitem