How about this then:
// addressbook.cpp
AddressBook
::AddressBook(QObject *parent
) :{
setQuery("select * from person");
QHash<int, QByteArray> roles;
roles[FirstName] = "firstName";
roles[LastName] = "lastName";
setRoleNames(roles);
}
{
QSqlRecord *r
= reinterpret_cast<QSqlRecord
*>
(item.
internalPointer());
if (role == FirstName)
return r->field("firstname").value();
if (role == LastName)
return r->field("lastName").value();
}
// addressbook.cpp
AddressBook::AddressBook(QObject *parent) :
QSqlQueryModel(parent)
{
setQuery("select * from person");
QHash<int, QByteArray> roles;
roles[FirstName] = "firstName";
roles[LastName] = "lastName";
setRoleNames(roles);
}
QVariant AddressBook::data(const QModelIndex &item, int role) const
{
QSqlRecord *r = reinterpret_cast<QSqlRecord*>(item.internalPointer());
if (role == FirstName)
return r->field("firstname").value();
if (role == LastName)
return r->field("lastName").value();
return QVariant();
}
To copy to clipboard, switch view to plain text mode
item.internalPointer() returns null pointer all the time.
Bookmarks