Is there something wrong with this code that I don't see?
Aside from the fact that you do absolutely no error checking to ensure that "record" is valid or that either of the values returned by "record.at()" are valid? No.

getDataList() << QPair<QString, int>(record.at(0).toString(), record.at(1).toInt());