Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Text from database to QStandardItemModel
Forum Updated to NodeBB v4.3 + New Features

Text from database to QStandardItemModel

Scheduled Pinned Locked Moved Solved General and Desktop
database
15 Posts 4 Posters 5.5k Views 3 Watching
  • 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.
  • Y Offline
    Y Offline
    yizhixiaobai
    wrote on last edited by
    #2

    look this:
    Qt5.6.0
    void QStandardItemModel::setItem(int row, int column, QStandardItem *item);
    maybe you can use it like this:
    setItem(row,0,&NameD);

    1 Reply Last reply
    0
    • mrjjM Offline
      mrjjM Offline
      mrjj
      Lifetime Qt Champion
      wrote on last edited by mrjj
      #3

      Hi
      Its not really clear what you are trying but if you are trying to ADD
      new items, you should new EACH of them.

      QStandardItemModel model(4, 4);
      for (int row = 0; row < 4; ++row) {
          for (int column = 0; column < 4; ++column) {
      // Create new Item
              QStandardItem *item = new QStandardItem(QString("row %0, column %1").arg(row).arg(column));
      // add it
              model.setItem(row, column, item); 
          }
      }
      

      Also if from database, why not just take it directly using QSqlQueryModel:
      QSqlQueryModel* model = new QSqlQueryModel();
      model->setQuery("select firstname from person"); // display all firstnames

      G 1 Reply Last reply
      1
      • mrjjM mrjj

        Hi
        Its not really clear what you are trying but if you are trying to ADD
        new items, you should new EACH of them.

        QStandardItemModel model(4, 4);
        for (int row = 0; row < 4; ++row) {
            for (int column = 0; column < 4; ++column) {
        // Create new Item
                QStandardItem *item = new QStandardItem(QString("row %0, column %1").arg(row).arg(column));
        // add it
                model.setItem(row, column, item); 
            }
        }
        

        Also if from database, why not just take it directly using QSqlQueryModel:
        QSqlQueryModel* model = new QSqlQueryModel();
        model->setQuery("select firstname from person"); // display all firstnames

        G Offline
        G Offline
        gabor53
        wrote on last edited by
        #4

        Hi @mrjj,
        I tried the second solution first. When I used

        QSqlTableModel *model = new QSqlTableModel();
        model->setQuery ("SELECT Name FROM Item" );
        

        I got the following error message:
        C:\Programming\Projects\Folkfriends\mainwindow.cpp:42: error: no matching function for call to 'QSqlTableModel::setQuery(const char [22])'
        model->setQuery ("SELECT Name FROM Item" );

        What did I miss?

        1 Reply Last reply
        0
        • mrjjM Offline
          mrjjM Offline
          mrjj
          Lifetime Qt Champion
          wrote on last edited by
          #5

          @gabor53 said:
          Hmm, even ?
          QString q;
          q="SELECT Name FROM Item";
          model->setQuery (q);

          G 1 Reply Last reply
          1
          • mrjjM mrjj

            @gabor53 said:
            Hmm, even ?
            QString q;
            q="SELECT Name FROM Item";
            model->setQuery (q);

            G Offline
            G Offline
            gabor53
            wrote on last edited by
            #6

            @mrjj
            It gives the same error message for the

            ;
            model->setQuery (q);
            
            ```line....
            mrjjM 1 Reply Last reply
            0
            • G gabor53

              @mrjj
              It gives the same error message for the

              ;
              model->setQuery (q);
              
              ```line....
              mrjjM Offline
              mrjjM Offline
              mrjj
              Lifetime Qt Champion
              wrote on last edited by
              #7

              @gabor53
              hmm.
              Do you have
              QT += sql
              in the .pro file?

              G 1 Reply Last reply
              1
              • mrjjM mrjj

                @gabor53
                hmm.
                Do you have
                QT += sql
                in the .pro file?

                G Offline
                G Offline
                gabor53
                wrote on last edited by
                #8

                @mrjj

                Yes, like this:

                QT       += core gui sql
                
                mrjjM 1 Reply Last reply
                0
                • G gabor53

                  @mrjj

                  Yes, like this:

                  QT       += core gui sql
                  
                  mrjjM Offline
                  mrjjM Offline
                  mrjj
                  Lifetime Qt Champion
                  wrote on last edited by
                  #9

                  @gabor53
                  and
                  #include <QSqlQueryModel>
                  ?

                  G 1 Reply Last reply
                  1
                  • mrjjM mrjj

                    @gabor53
                    and
                    #include <QSqlQueryModel>
                    ?

                    G Offline
                    G Offline
                    gabor53
                    wrote on last edited by
                    #10

                    @mrjj

                    I have that one too.

                    mrjjM 1 Reply Last reply
                    0
                    • G gabor53

                      @mrjj

                      I have that one too.

                      mrjjM Offline
                      mrjjM Offline
                      mrjj
                      Lifetime Qt Champion
                      wrote on last edited by mrjj
                      #11

                      @gabor53
                      ok. no idea then.
                      http://doc.qt.io/qt-5/qsqlquerymodel.html

                      What version of Qt do you have ? did you compile yourself?

                      G 1 Reply Last reply
                      1
                      • mrjjM mrjj

                        @gabor53
                        ok. no idea then.
                        http://doc.qt.io/qt-5/qsqlquerymodel.html

                        What version of Qt do you have ? did you compile yourself?

                        G Offline
                        G Offline
                        gabor53
                        wrote on last edited by
                        #12

                        @mrjj

                        I have 5.6 and Yes I compiled myself.

                        1 Reply Last reply
                        0
                        • SGaistS Offline
                          SGaistS Offline
                          SGaist
                          Lifetime Qt Champion
                          wrote on last edited by
                          #13

                          Hi,

                          That's because you are using a QSqlTableModel, you should use a QSqlQueryModel.

                          QSqlTableModel goal is to make a table accessible.

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

                          mrjjM 1 Reply Last reply
                          3
                          • SGaistS SGaist

                            Hi,

                            That's because you are using a QSqlTableModel, you should use a QSqlQueryModel.

                            QSqlTableModel goal is to make a table accessible.

                            mrjjM Offline
                            mrjjM Offline
                            mrjj
                            Lifetime Qt Champion
                            wrote on last edited by mrjj
                            #14

                            QSqlTableModel

                            Good catch :)

                            G 1 Reply Last reply
                            2
                            • mrjjM mrjj

                              QSqlTableModel

                              Good catch :)

                              G Offline
                              G Offline
                              gabor53
                              wrote on last edited by
                              #15

                              @mrjj
                              The following worked:

                              	model = new QSqlTableModel(this);
                                  model->setTable ("Items");
                                  model->select ();
                                  ui->tableView->setModel (model);
                              

                              Thank you for all your help!

                              1 Reply Last reply
                              2

                              • Login

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