hailler的个人主页

http://www.qtcn.org/bbs/u/183962  [收藏] [复制]

hailler

  • 0

    关注

  • 2

    粉丝

  • 26

    访客

  • 等级:新手上路
  • 总积分:25
  • 保密,2011-01-01

最后登录:2019-06-22

更多资料

日志

判断指针是否为自定义类,用如下办法解决了。

2017-10-29 11:15
做了个表格,能动态添加,删除行列,并进行即时计算。用了 model view delegate模式。
在model 里设置了所有单元格都可编辑。用delegate 模式,设定了某些行只读属性。
要求能判断,选中的行为只读,不进行复制操作。先用了 flags的办法,由于只是在 delegate里设定(model 里设定太麻烦了),发现这些设定无效,一切以model为准。
又想到了用获取类名的办法来判断。
我自己的类名为    class ReadOnlyDelegate : public QItemDelegate  
QModelIndex index=tableview->currentIndex();
QAbstractItemDelegate *itemdelegate= tableview->itemDelegateForRow(index.row());
  //      qDebug() <<itemdelegate->metaObject()->className();
// bool ok = itemdelegate->inherits("ReadOnlyDelegate");
    //    qDebug()<<ok;
但返回的都是我写的类的父类的名称QItemDelegate  。
最后在快放弃的时刻,发现了一个好东西:objectName,于是大功告成。
构造时设定:
ReadOnlyDelegate *readOnly = new ReadOnlyDelegate;
  readOnly->setObjectName("readonly");
函数里判断:
   if(itemdelegate){
        QString objectName= itemdelegate->objectName();
        if ( objectName == "readonly"){
            qDebug()<< "object name" <<   objectName;
            return;
        }
    }
分类:默认分类|回复:0|浏览:543|全站可见|转载
 

Powered by phpwind v8.7 Certificate Copyright Time now is:04-26 08:45
©2005-2016 QTCN开发网 版权所有 Gzip disabled