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