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

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

【问题讨论】:

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

标签: c++ qt user-interface


【解决方案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 我更新了我的评论。但是,请尝试了解它是如何工作的,并用自己的方式制作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-03
  • 1970-01-01
  • 2010-10-27
  • 2021-04-21
  • 2012-04-30
  • 2018-08-26
  • 1970-01-01
相关资源
最近更新 更多