逛奔的蜗牛

我不聪明,但我会很努力

   ::  :: 新随笔 ::  ::  :: 管理 ::

如果只是需要简直的改变如QTableView的Item显示的文字的颜色, 可以继承自QStandardItem, 然后修改data返回的角色的值.

#ifndef COLORITEM_H

#define COLORITEM_H

#include <QStandardItem>

#include <QString>


class ColorItem : public QStandardItem {

public:

    ColorItem(const QString & text = "", const QString & coloredText = "否");

    ~ColorItem();

    virtual QVariant data(int role = Qt::UserRole + 1) const;


private:

    QString coloredText;

};


#endif // COLORITEM_H


#include "ColorItem.h"

#include <qDebug>


ColorItem::ColorItem(const QString & text, const QString & coloredText)

        : QStandardItem(text) {

    this->coloredText = coloredText;

}


ColorItem::~ColorItem() {

    //qDebug() << "Destruct Color Item";

}


QVariant ColorItem::data(int role) const {

    if (role == Qt::ForegroundRole) {

        if (QStandardItem::data(Qt::DisplayRole) == coloredText) {

            return QColor(Qt::red);

        }

    }


    return QStandardItem::data(role);

}

posted on 2009-07-23 02:41 逛奔的蜗牛 阅读(1827) 评论(0)  编辑 收藏 引用 所属分类: Qt

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理