почему ругается колмпилятор на такой код
109: QVariant data_ = myIndex.model()->data(myIndex, Qt::UserRole);
110: if ( data_.canConvert<QFileInfo>() )
111: QFileInfo FileInfo_ = data_.value<QFileInfo>();
не компилируется и выдает такое компилятор
/usr/local/Trolltech/Qt-4.2.0/include/QtCore/qmetatype.h: In static member
function `static int QMetaTypeId2<T>::qt_metatype_id() [with T = QFileInfo]
':
/usr/local/Trolltech/Qt-4.2.0/include/QtCore/qmetatype.h:178: instantiated from `int qMetaTypeId(T*) [with T = QFileInfo]'
/usr/local/Trolltech/Qt-4.2.0/include/QtCore/qvariant.h:553: instantiated from `bool qVariantCanConvert(const QVariant&) [with T = QFileInfo]'
/usr/local/Trolltech/Qt-4.2.0/include/QtCore/qvariant.h:295: instantiated from `bool QVariant::canConvert() const [with T = QFileInfo]'
mainwindow.cpp:110: instantiated from here
/usr/local/Trolltech/Qt-4.2.0/include/QtCore/qmetatype.h:168: error: 'struct
QMetaTypeId<QFileInfo>' has no member named 'qt_metatype_id'
make: *** [mainwindow.o] Ошибка 1
в userRole хранится QFileInfo, инициализированное таким образом
QStandardItem * myModel::addFile(QStandardItem * parent, const QFileInfo &file){
QStandardItem * temp = new QStandardItem( file.completeBaseName() );
int FileInfo_ = Qt::UserRole;
temp->setData(&file, FileInfo_);
parent->appendRow( temp );
return parent;
}
что не так ?!
Q_DECLARE_METATYPE ( Type )?
спасибище!!! работает !
только странно как то .....
QVariant data_ = song.model()->data(song, Qt::UserRole);
QFileInfo FileInfo_;
if ( data_.canConvert<QFileInfo>() )
FileInfo_ = data_.value<QFileInfo>();
pathLabel->setText(FileInfo_.absoluteFilePath());
вместо полного пути выдает всегда "true" ....
почему ?!