Russian Qt Forum
Ноябрь 24, 2024, 08:10 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [QT-4.2] Ругается компилятор на QVariant::value  (Прочитано 3296 раз)
izoomer
Гость
« : Январь 08, 2007, 18:45 »

почему ругается колмпилятор на такой код
Код:

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;
}




что не так ?!
Записан
bigirbis
Гость
« Ответ #1 : Январь 08, 2007, 19:33 »

Q_DECLARE_METATYPE ( Type )?
Записан
izoomer
Гость
« Ответ #2 : Январь 09, 2007, 00:32 »

Цитата: "bigirbis"
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" ....
почему ?!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 21.