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. Data not displaying on the QTreeView, QTableView,QListView classes
Forum Updated to NodeBB v4.3 + New Features

Data not displaying on the QTreeView, QTableView,QListView classes

Scheduled Pinned Locked Moved Unsolved General and Desktop
21 Posts 3 Posters 4.0k 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.
  • VRoninV VRonin
    1. pass your model through the Model Test
    2. make sure it survives and doesn't go out of scope as your views did
    T Offline
    T Offline
    thippu
    wrote on last edited by
    #9

    @VRonin Yeah, I did that no errors, bro.
    code what I did is: inside QWidget.

    new QAbstractItemModelTester(model,QAbstractItemModelTester::FailureReportingMode::Fatal);
    
    
    JonBJ 1 Reply Last reply
    0
    • T thippu

      @VRonin Yeah, I did that no errors, bro.
      code what I did is: inside QWidget.

      new QAbstractItemModelTester(model,QAbstractItemModelTester::FailureReportingMode::Fatal);
      
      
      JonBJ Offline
      JonBJ Offline
      JonB
      wrote on last edited by
      #10

      @thippu
      As @VRonin asked, how do we know from the code you post what the scope/lifetime of your AddressbookModel instance is?

      T 3 Replies Last reply
      0
      • JonBJ JonB

        @thippu
        As @VRonin asked, how do we know from the code you post what the scope/lifetime of your AddressbookModel instance is?

        T Offline
        T Offline
        thippu
        wrote on last edited by thippu
        #11

        @JonB I did convert all the objects from stack memory to heap, I'm not getting what you need?

        1 Reply Last reply
        0
        • JonBJ JonB

          @thippu
          As @VRonin asked, how do we know from the code you post what the scope/lifetime of your AddressbookModel instance is?

          T Offline
          T Offline
          thippu
          wrote on last edited by
          #12

          @JonB
          And also I did modelTest, There was no error.

          1 Reply Last reply
          0
          • JonBJ JonB

            @thippu
            As @VRonin asked, how do we know from the code you post what the scope/lifetime of your AddressbookModel instance is?

            T Offline
            T Offline
            thippu
            wrote on last edited by thippu
            #13

            @JonB changed all to the heap, I think they will stay till application die, right?
            code I have changed:

            Widget::Widget(QWidget *parent)
            : QWidget(parent)
            {
            QFile file("path");
            if(!file.open(QIODevice::ReadOnly|QIODevice::Text))
            {
            qDebug()<<"can't access the file";
            }
            QString *addresses=new QString(QString::fromUtf8(file.readAll()));
            Addressbookmodel *model=new Addressbookmodel(addresses,this);
            
            QListView *listView=new QListView();
            listView->setModel(model);
            listView->setModelColumn(0);
            listView->show();
            
            QTreeView *treeView=new QTreeView;
            treeView.setModel(model);
            treeView.show();
            
            QTableView *tableView=new QTableView;
            tableView.setModel(model);
            tableView.show();
            
            setMiniumSize(800,400);
            QVBoxLayout *Vlayout=new QVBoxLayout(this);
            Vlayout->addWidget(listView);
            Vlayout->addWidget(treeView);
            Vlayout->addWidget(tableView);
            }
            
            JonBJ 1 Reply Last reply
            0
            • T thippu

              @JonB changed all to the heap, I think they will stay till application die, right?
              code I have changed:

              Widget::Widget(QWidget *parent)
              : QWidget(parent)
              {
              QFile file("path");
              if(!file.open(QIODevice::ReadOnly|QIODevice::Text))
              {
              qDebug()<<"can't access the file";
              }
              QString *addresses=new QString(QString::fromUtf8(file.readAll()));
              Addressbookmodel *model=new Addressbookmodel(addresses,this);
              
              QListView *listView=new QListView();
              listView->setModel(model);
              listView->setModelColumn(0);
              listView->show();
              
              QTreeView *treeView=new QTreeView;
              treeView.setModel(model);
              treeView.show();
              
              QTableView *tableView=new QTableView;
              tableView.setModel(model);
              tableView.show();
              
              setMiniumSize(800,400);
              QVBoxLayout *Vlayout=new QVBoxLayout(this);
              Vlayout->addWidget(listView);
              Vlayout->addWidget(treeView);
              Vlayout->addWidget(tableView);
              }
              
              JonBJ Offline
              JonBJ Offline
              JonB
              wrote on last edited by
              #14

              @thippu

              Addressbookmodel *model=new Addressbookmodel(addresses,this);
              treeView.setModel(&model);
              tableView.setModel(&model);
              

              Now that model is a pointer, why the &s?

              T 2 Replies Last reply
              2
              • JonBJ JonB

                @thippu

                Addressbookmodel *model=new Addressbookmodel(addresses,this);
                treeView.setModel(&model);
                tableView.setModel(&model);
                

                Now that model is a pointer, why the &s?

                T Offline
                T Offline
                thippu
                wrote on last edited by
                #15

                @JonB Sorry, typo mistake.

                1 Reply Last reply
                0
                • JonBJ JonB

                  @thippu

                  Addressbookmodel *model=new Addressbookmodel(addresses,this);
                  treeView.setModel(&model);
                  tableView.setModel(&model);
                  

                  Now that model is a pointer, why the &s?

                  T Offline
                  T Offline
                  thippu
                  wrote on last edited by
                  #16

                  @JonB I did copy and paste from the early reply, So

                  1 Reply Last reply
                  0
                  • VRoninV Offline
                    VRoninV Offline
                    VRonin
                    wrote on last edited by
                    #17

                    I'm surprised you don't get into stack overflow.
                    AddressbookModel::rowCount and AddressbookModel::columnCount form an infinitely deep tree.

                    You should return 0; if the parent argument isValid()

                    "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
                    ~Napoleon Bonaparte

                    On a crusade to banish setIndexWidget() from the holy land of Qt

                    T 2 Replies Last reply
                    1
                    • VRoninV VRonin

                      I'm surprised you don't get into stack overflow.
                      AddressbookModel::rowCount and AddressbookModel::columnCount form an infinitely deep tree.

                      You should return 0; if the parent argument isValid()

                      T Offline
                      T Offline
                      thippu
                      wrote on last edited by
                      #18

                      @VRonin okay,
                      In the Addressbookmodel.cpp
                      I changed the code to :

                      int Addressbookmodel::rowCount(const QModelIndex &parent) const
                      {
                         if(parent.isValid())
                      {
                        return 0;
                      }
                      return addressbook.count-2;
                      }
                      
                      
                      int Addressbookmodel::columnCount(const QModelIndex &parent)
                      const
                      {
                        if(parent.isValid())
                        {
                         return 0;
                        }
                      return addressbook.at(0).count();
                      }
                      
                      

                      I don't know why it is not used in the book and why am not getting data on the widgets still?.

                      1 Reply Last reply
                      0
                      • VRoninV VRonin

                        I'm surprised you don't get into stack overflow.
                        AddressbookModel::rowCount and AddressbookModel::columnCount form an infinitely deep tree.

                        You should return 0; if the parent argument isValid()

                        T Offline
                        T Offline
                        thippu
                        wrote on last edited by
                        #19

                        @VRonin Can share me an example that helps me to understand how to create QTreeView model and subclass it?, so from this I can able to create my own models successfully.

                        VRoninV 1 Reply Last reply
                        0
                        • T thippu

                          @VRonin Can share me an example that helps me to understand how to create QTreeView model and subclass it?, so from this I can able to create my own models successfully.

                          VRoninV Offline
                          VRoninV Offline
                          VRonin
                          wrote on last edited by
                          #20

                          @thippu said in Data not displaying on the QTreeView, QTableView,QListView classes:

                          Can share me an example that helps me to understand how to create QTreeView model and subclass it?

                          http://doc.qt.io/qt-5/qtwidgets-itemviews-simpletreemodel-example.html

                          "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
                          ~Napoleon Bonaparte

                          On a crusade to banish setIndexWidget() from the holy land of Qt

                          T 1 Reply Last reply
                          1
                          • VRoninV VRonin

                            @thippu said in Data not displaying on the QTreeView, QTableView,QListView classes:

                            Can share me an example that helps me to understand how to create QTreeView model and subclass it?

                            http://doc.qt.io/qt-5/qtwidgets-itemviews-simpletreemodel-example.html

                            T Offline
                            T Offline
                            thippu
                            wrote on last edited by
                            #21

                            @VRonin , Thank you.

                            1 Reply Last reply
                            0

                            • Login

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