码迷,mamicode.com
首页 > 其他好文 > 详细

亲身体会:一种需要取得子类详细信息的情况(五种方法)

时间:2016-03-30 01:43:41      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:

void MyProgressBar::paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const
{  
        // -------------------- 取数据,测试数据 ---------------------------------
        const QAbstractItemModel *item_model = index.model(); // 根据当前索引取得模型(包括了无数信息)
        int nRow = index.row(); // 当前行(每次的当前行)
        // 注意,这个index.model是QT库自带的函数:http://doc.qt.io/qt-4.8/qmodelindex.html
        // 它当然只能返回一个QAbstractItemModel的指针,而不是经过我继承和改造的Model,这样一来它就无法取得我添加的额外信息
        // 这个时候,必须要把这个model下降为子类才能准确取得需要的信息,大概有5种方法
        // 要么使用dynamic_cast,要么进行RTTI,要么强行转换(相当于static_cast),要么在MyProgressBar里提前记录我新定义的Model的类型指针,不知道QT有没有额外的方法

        // 之所以发生这种问题的根本原因在于,这个类库不是自己写的,它所提供的函数只能取得父类指针
}

 

亲身体会:一种需要取得子类详细信息的情况(五种方法)

标签:

原文地址:http://www.cnblogs.com/findumars/p/5335482.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!