سلام
نکته مهم را نگفتید این اطلاعات قرار هست از کجا بیاد؟ من فرض میکنم از دیتابیس
اول یک کانکشن به دیتابیس بسازید که برنامه متصل به بانک اطلاعاتی باشه.
بعد از اون میتونید برای پر کردن TableView در ui یا qml که من بیشتر میپسندم یک مدل بسازید.برای ساخت مدل میتونید از دو کلاس استفاده کنید QSqlQuery و کلاس زیر مجموعش QSqlTable
برای ساخت مدل و مرتبط کردنش با جدول هم یک کلاس جدید بساز
میتونید از لینک های زیر هم استفاده کنید
http://qt-project.org/doc/qt-4.8/sql-model.html
http://www.informit.com/articles/article.aspx?p=1405550
یک نمونه مدل که خودم استفاده کردم:
.h
class BookModel: public QSqlTableModel
{
Q_OBJECT
public:
explicit BookModel(QObject *parent = 0,QSqlDatabase db =QSqlDatabase());
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole ) const;
virtual void setTable ( const QString &table_name );
virtual QHash<int, QByteArray> roleNames() const;
private:
QHash<int, QByteArray> roles;
void generateRoleNames();
protected:
void setQuery(const QSqlQuery &query):
};
.cpp
ModelData::BookModel::BookModel(QObject *parent, QSqlDatabase db)
:QSqlTableModel(parent,db)
{
}
QVariant ModelData::BookModel::data(const QModelIndex &index, int role) const
{
if(index.row() >= rowCount())
{
return QString("");
}
if(role < Qt::UserRole)
{
return QSqlTableModel::data(index, role);
}
QModelIndex modelIndex = this->index(index.row(), role - Qt::UserRole - 1 );
return QSqlQueryModel::data(modelIndex, Qt::EditRole);
}
void ModelData::BookModel::setTable(const QString &table_name)
{
QSqlTableModel::setTable(table_name);
generateRoleNames();
}
QHash<int, QByteArray> ModelData::BookModel::roleNames() const
{
return roles;
}
void ModelData::BookModel::generateRoleNames()
{
roles.clear();
for (int i = 0; i < columnCount(); i++)
{
roles[Qt::UserRole + i + 1] = QVariant(headerData(i, Qt::Horizontal).toString()).toByteArray();
}
}
void ModelData::BookModel::setQuery(const QSqlQuery &query)
{
}