Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一种简单的方法来更改QTableWidget中行的背景颜色?_Qt_Qt4 - Fatal编程技术网

有没有一种简单的方法来更改QTableWidget中行的背景颜色?

有没有一种简单的方法来更改QTableWidget中行的背景颜色?,qt,qt4,Qt,Qt4,我知道您可以循环使用QTableWidgetItems并更改它们的颜色,但是,如果我使用了setCellWidget,并且我的单元格不是QTableWidgetItems,该怎么办。我找不到简单的setRowColor方法。似乎应该有,因为有交替行颜色和其他方法。有没有一种简单的方法可以做到这一点而不必对表的委托进行细分 反问: 我只想更改行颜色,我真的需要一个全新的类吗?您可以向QTableWidget添加一个样式表,如下所示: QTableWidget::item { backgro

我知道您可以循环使用QTableWidgetItems并更改它们的颜色,但是,如果我使用了setCellWidget,并且我的单元格不是QTableWidgetItems,该怎么办。我找不到简单的setRowColor方法。似乎应该有,因为有交替行颜色和其他方法。有没有一种简单的方法可以做到这一点而不必对表的委托进行细分

反问:
我只想更改行颜色,我真的需要一个全新的类吗?

您可以向QTableWidget添加一个样式表,如下所示:

QTableWidget::item {
    background-color: rgb(255, 85, 127);
}
您可以按如下方式设置此is代码:

QString _CustomStyle = QString(
      "QTableWidget::item {"
      "background-color: rgba(162, 186, 60);"
      "}";
tableWidget->setStyleSheet(_CustomStyle);

使用您自己的颜色RGB(显然)。

我相信使用QTableWidget设置行颜色的最简单方法是遍历小部件项并使用方法指定背景颜色,请参见下面的示例

for (int column=0; column<4; column++)
{
    for (int row = 0; row<5; row++)
    {
        QTableWidgetItem *newItem = new QTableWidgetItem(tr("%1").arg((row+1)*(column+1)));
        newItem->setData(Qt::BackgroundRole, (row%2)>0 ? Qt::red : Qt::blue);
        ui->tableWidget->setItem(row, column, newItem);
    }
}
for(int column=0;column0?Qt::red:Qt::blue);
ui->tableWidget->setItem(行、列、新项);
}
}

如果您想使它更简单,请考虑使用小部件代替,实现您的模型(我猜最简单的方法是子类),并在其中保留行颜色。实现一个setRowColor方法或/和一个插槽来指定数据行的颜色


希望这有帮助,问候

谢谢。但是,我实际上是想设置一行的颜色。我相信你的建议会给整个表格上色。我确实使用了CSS,所以我会将其标记为已接受,但我只需要给一行上色。非常感谢!谢谢,但是,当我使用setCellWidget将小部件放入单元格时,我正在寻找一种设置单元格背景的方法。有办法做到这一点吗?