#include #include #include #include #include #include #include class MyListModel : public QAbstractListModel { Q_OBJECT public: explicit MyListModel(QObject *parent = Q_NULLPTR) : QAbstractListModel(parent) { int testDataCount = 5; m_items.resize(testDataCount); QDateTime(QDate(2017, 5, 27), QTime(), Qt::UTC); m_items[0] = QDateTime(QDate(2017, 5, 27), QTime(), Qt::UTC); m_items[1] = QDateTime(QDate(2017, 5, 27), QTime(), QTimeZone("Europe/Berlin")); m_items[2] = QDateTime(QDate(2017, 5, 27), QTime(), QTimeZone("Europe/Athens")); m_items[3] = QDateTime(QDate(2017, 5, 27), QTime(), QTimeZone("Asia/Baku")); m_items[4] = QDateTime(QDate(2017, 5, 27), QTime(), QTimeZone("America/New_York")); } int rowCount(const QModelIndex &) const Q_DECL_OVERRIDE { return m_items.size(); } QVariant data(const QModelIndex &index, int role) const Q_DECL_OVERRIDE { auto const row = index.row(); if (row >= m_items.size() || row < 0) return QVariant(); switch (role) { case Qt::DisplayRole: return QLocale().toString(m_items.at(row)); case Qt::ToolTipRole: return m_items.at(row); default: break; } return QVariant(); } private: QVector m_items; }; int main(int argc, char *argv[]) { QApplication a(argc, argv); QListView view; view.setModel(new MyListModel(&view)); view.resize(600, 300); view.show(); return a.exec(); } #include "main.moc"