Russian Qt Forum

Qt => Общие вопросы => Тема начата: demaker от Сентябрь 17, 2013, 10:02



Название: [Решено]QAbstractItemModel::columnCount();
Отправлено: demaker от Сентябрь 17, 2013, 10:02
Код
C++ (Qt)
int ListModelBrowser::columnCount(const QModelIndex &parent) const
{
   QObject *element = reinterpret_cast<QObject*>(parent.internalPointer());
   if(QVariant(element->metaObject()->className()).toString() == "Base")
   {
      return 4;
   }
   return 3;
}
 
Почему нельзя использовать такой код???
Код:
element->metaObject()->className()


Название: Re: QAbstractItemModel::columnCount();
Отправлено: Hellraiser от Сентябрь 17, 2013, 10:28
Просмотр ассистента может уберечь от таких вопросов - сравнение указателей на строки бессмысленно. По теме: classname() возвращает не QString, а char*. Для сравнения С-строк можно использовать qstrcmp.
Код:
if(qstrcmp(element->metaObject()->className(), "Base") == 0)