I have a tableview on a qmlfile, I'm trying to set the model from c++.
The model I'm using is QSqlTableModel, if a create a new tableview and set the model from c++ it seems to work, but when I pass the model to the model property in the qmlfile it doesn't work and I can't figure out why...
the c++ model code is:
	
	-   
-     const QString-  queryStr  = "SELECT sql FROM sqlite_master WHERE tbl_name = '" +-  tableName  +"' AND type = 'table'"-  ; 
 
-     if (!query.exec()) 
-         qFatal("Query failed"); 
-   
-   
-   
-     model->setTable(tableName); 
-     model->select(); 
-   
-   
-     int i=0; 
-     while (query.next()){ 
-         model->setHeaderData(i, Qt::Vertical, query.value(i).toString()); 
-         i++; 
-     } 
-   
-    return   model; 
-   
- } 
        QSqlTableModel * SqlEventModel::getTableData(QString tableName, QTableView *item){
    const QString queryStr = "SELECT sql FROM sqlite_master WHERE tbl_name = '" + tableName +"' AND type = 'table'" ;
    QSqlQuery query(queryStr);
    if (!query.exec())
        qFatal("Query failed");
    QSqlDatabase db = QSqlDatabase::database(":memory:");
    QSqlTableModel *model = new QSqlTableModel(item, db);
    model->setTable(tableName);
    model->setEditStrategy(QSqlTableModel::OnManualSubmit);
    model->select();
    int i=0;
    while (query.next()){
        model->setHeaderData(i, Qt::Vertical, query.value(i).toString());
        i++;
    }
   return   model;
}
To copy to clipboard, switch view to plain text mode 
  that returns a model which works if within c++ I create a tableview and assign the model but when I do this:
	
	- TableView{ 
-     id: table; 
-     width: parent.width -100 
-     height: parent.height -200 
-     anchors.horizontalCenter: parent.horizontalCenter 
-     anchors.top: parent.top 
-     anchors.topMargin: 90 
-     model: SqlEventModel.getTableData(GData.tName,table) 
- } 
        TableView{
    id: table;
    width: parent.width -100
    height: parent.height -200
    anchors.horizontalCenter: parent.horizontalCenter
    anchors.top: parent.top
    anchors.topMargin: 90
    model: SqlEventModel.getTableData(GData.tName,table)
}
To copy to clipboard, switch view to plain text mode 
  it doesn't work, it just shows an empty table even though when I debug the tableview model is not empty...
if I add:
	
	- view->setModel(model); 
- view->show(); 
        QTableView *view =  new QTableView();
view->setModel(model);
view->show();
To copy to clipboard, switch view to plain text mode 
  
just before the return on the c++ function I get a new window with a table which properly displays the table... I tried adding columns with the same rolename that I give in c++ and they won't populate either.... here's a screenshot of both tables
http://i.stack.imgur.com/gGzhu.png
posted a
				
			
Bookmarks