QTableView 选中行不修改前景色方案


  在为 QTableView 设置 model 的时候,添加如下语句(ItemDelegate 实现如下):

  ui->tblvMeter->setItemDelegate(new ItemDelegate); 
  //////////////////////////////////////////////////////////
  class ItemDelegate : public QItemDelegate
  {
    Q_OBJECT
  public:
    explicit ItemDelegate(){}
    void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
    {
    QStyleOptionViewItem viewOption(option);
    //高亮显示与普通显示时的前景色一致(即选中行和为选中时候的文字颜色一样)
    viewOption.palette.setColor(QPalette::HighlightedText, index.data(Qt::ForegroundRole).value<QColor>());
    QItemDelegate::paint(painter, viewOption, index);
    }
  };


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM