Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QML and Qt Quick
  4. Using custom QSqlTableModel from QT Quick QML file

Using custom QSqlTableModel from QT Quick QML file

Scheduled Pinned Locked Moved QML and Qt Quick
4 Posts 3 Posters 1.5k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • E Offline
    E Offline
    enorrmann
    wrote on 27 May 2014, 14:58 last edited by
    #1

    I'm getting frustrated here. I implemented a custom QSqlTableModel and I can't make it work from inside a QML file. But it works from c++ code ! Here is what I got:

    @#include <QSqlQuery>
    #include <QSqlTableModel>
    #include "tablemodel.h"

    MyTableModel::MyTableModel() : QSqlTableModel()
    {

    setTable("Event");
    setEditStrategy(QSqlTableModel::OnFieldChange);
    select();
    

    }
    @

    and this is my QML

    @import QtQuick 2.2
    import QtQuick.Controls 1.1
    import QtQuick.Window 2.1
    import org.qtproject.examples.calendar.tablemodel 1.0
    Window {
    visible:true
    width: 640
    height: 400
    minimumWidth: 400
    minimumHeight: 300
    color: "#f4f4f4"

    title: "Table example"
    
     MyTableModel{
         id : myModel
     }
    
    TableView{
        model:myModel
        anchors.fill: parent
    }
    

    }
    @

    and this is the main file, the commented code works, but i want to show the table from inside QML

    @#include <QtQml>
    #include <QtGui>
    #include <QTableView>

    #include "qtquickcontrolsapplication.h"
    #include "sqleventmodel.h"
    #include "tablemodel.h"
    #include "mytableview.h"

    int main(int argc, char *argv[])
    {

    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("test");
    if (!db.open()) {
        qFatal("Cannot open database");
    }
    

    QtQuickControlsApplication app(argc, argv);
    qmlRegisterType<MyTableModel>("org.qtproject.examples.calendar.tablemodel", 1, 0, "MyTableModel");

    QQmlApplicationEngine engine(QUrl("qrc:/qml/main.qml"));
    

    // QApplication app(argc, argv);
    // QSqlTableModel *model = new MyTableModel();

    // QTableView *view = new QTableView();
    // view->setModel(model);
    // view->show();

        return app.exec();
    

    }

    @

    1 Reply Last reply
    0
    • M Offline
      M Offline
      melghawi
      wrote on 27 May 2014, 16:00 last edited by
      #2

      Hi there,

      Take a look at "this":http://qt-project.org/doc/qt-4.7/qdeclarativemodels.html#id-01dbf022-49bc-4d56-8403-7b73526a3da5

      1 Reply Last reply
      0
      • E Offline
        E Offline
        enorrmann
        wrote on 27 May 2014, 16:06 last edited by
        #3

        Thanks moeg687, already read that. I exported the model and the model is visible from QML, but it is not rendering

        1 Reply Last reply
        0
        • S Offline
          S Offline
          SGaist
          Lifetime Qt Champion
          wrote on 27 May 2014, 20:15 last edited by
          #4

          Hi and welcome to devnet,

          It requires a little more work than that. Have a look at this "wiki entry":http://qt-project.org/wiki/How_to_use_a_QSqlQueryModel_in_QML

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          1 Reply Last reply
          0

          3/4

          27 May 2014, 16:06

          • Login

          • Login or register to search.
          3 out of 4
          • First post
            3/4
            Last post
          0
          • Categories
          • Recent
          • Tags
          • Popular
          • Users
          • Groups
          • Search
          • Get Qt Extensions
          • Unsolved