在 QTableView 中为一行着色

Posted

技术标签:

【中文标题】在 QTableView 中为一行着色【英文标题】:Color a row in QTableView 【发布时间】:2018-11-24 16:55:17 【问题描述】:

我需要。不是项目,我需要排!我正在使用 QSqlQueryModel。据我所知,它是由 QItemDelegate 执行的。帮我 对不起我的英语,但我需要它!

【问题讨论】:

请以文本形式提供代码而不是图像。 到目前为止你有什么尝试? 要编写委托,请查看此示例:doc.qt.io/qt-5/qtwidgets-itemviews-stardelegate-example.html,您可以使用 setItemDelegateForRow 一次为整行设置委托。但是,您也可以考虑编写 QSqlQueryModel 的后代并覆盖 data 方法并处理 Qt::BackgroundRole 的请求 这对我没有帮助( It doesn't help me 它的哪些方面没有帮助?你试过什么,为什么没有成功?请具体说明这些。 【参考方案1】:

试试这样的。 我在这里写了这段代码,所以 idk 是否有效。

ItemDelegatePaint::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const 
    if(index.row() == 1) /*check for your row*/ 
        painter->fillRect(option.rect, Qt::red);
        painter->setPen(QColor(Qt::white));
        painter->drawText(option.rect, Qt::AlignCenter, index.data(Qt::DisplayRole).toString());
     else 
        QStyledItemDelegate::paint(painter, option, index);
    

【讨论】:

@sardorkun 我更新了我的评论。但是,请尝试了解它是如何工作的,并用自己的方式制作。

以上是关于在 QTableView 中为一行着色的主要内容,如果未能解决你的问题,请参考以下文章

用于在反应中为一行antd表着色的CSS

QSqlRelationalTableModel QTableView 着色行

QTableView 中的着色行而不是单元格

如何在 Pyqt4 中设置 QTableView 标头名称

如何在pyqt4的右侧对齐qtableview行?

qt 中Qtable widget中如何加一个表