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. QAbstractItemModel beginInsertRow, reenumerate other rows?
Forum Updated to NodeBB v4.3 + New Features

QAbstractItemModel beginInsertRow, reenumerate other rows?

Scheduled Pinned Locked Moved Solved General and Desktop
11 Posts 4 Posters 1.5k Views 1 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.
  • Christian EhrlicherC Online
    Christian EhrlicherC Online
    Christian Ehrlicher
    Lifetime Qt Champion
    wrote on last edited by
    #2

    Why not simply use a QVector<DevPlaceDataStruct*> instead? Then use the index as row and all works without additional stuff.

    Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
    Visit the Qt Academy at https://academy.qt.io/catalog

    M 1 Reply Last reply
    3
    • Christian EhrlicherC Christian Ehrlicher

      Why not simply use a QVector<DevPlaceDataStruct*> instead? Then use the index as row and all works without additional stuff.

      M Offline
      M Offline
      Marek
      wrote on last edited by
      #3

      @Christian-Ehrlicher actually... I haven't thought about this earlier, because every subclass of QAbstractListModel I have seen used QMap not QVector but yes it should work.
      Thanks,
      Marek

      1 Reply Last reply
      0
      • AndySA Offline
        AndySA Offline
        AndyS
        Moderators
        wrote on last edited by
        #4

        @Marek can you marked this as solved if @Christian-Ehrlicher's answer solves the issue for you? Thanks.

        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

        M 1 Reply Last reply
        1
        • AndySA AndyS

          @Marek can you marked this as solved if @Christian-Ehrlicher's answer solves the issue for you? Thanks.

          M Offline
          M Offline
          Marek
          wrote on last edited by
          #5

          @AndyS Yes I will, it looks like it is sound sollution, I just couldn't find time to test it ;) I will try it ASAP.

          1 Reply Last reply
          0
          • M Offline
            M Offline
            Marek
            wrote on last edited by
            #6

            Hi
            Actually I have problem with both methods QVector and QMap it gives me the same result.
            Problem is when I remove row=0 and then I add item which should go into row=0.
            Result is that I have in view: Item1, Item2, black space, item3.
            When I add row in the middle or at the end it is OK.
            When I'm checking debug it looks like it should work, row is correct, model count is correct

            DevPlaceModel::removeRow dev_id: 74  row: 0  count: 2
            DevPlaceModel::addRow dev_id: 74  place_number: 1  row: 0  count: 3
            

            I have attached cpp, h and qml file.
            Cpp and h has commented out version with QMap, so it works with QVector, but both methods have a problem with row=0.
            At the beginning I'm settings model from another class by calling
            beginSetModel();
            addPlace(int dev_id,int place_number);
            endSetModel();

            When model is set I'm using
            addRow(int dev_id,int place_number);
            removeRow(int dev_id);

            Can someone shed some light?

            Best,
            Marek

            #include <QtCore>
            #include <QAbstractListModel>
            #include <QtXml/QDomNode>
            #include <QtXml/QDomElement>
            #include <QGeoCoordinate>
            #include <QGeoRectangle>
            #include "helper.h"
            
            
            struct DevPlaceDataStruct {
                int         row;
                int         dev_id;
                int         place_number;
                QString     text;
            };
            
            class DevPlaceModel : public QAbstractListModel
            {
                Q_OBJECT
            public:
                enum ItemRoles {
                    IdRole = Qt::UserRole + 1,
                    TextRole = Qt::UserRole + 2,
                    RowRole = Qt::UserRole + 3,
                };
            
                DevPlaceModel(QObject *parent);
            
                virtual int rowCount(const QModelIndex&) const { return vector.count(); }
              //  virtual int rowCount(const QModelIndex&) const { return modelMap.count(); }
                virtual QVariant data(const QModelIndex &index, int role) const;
            
                QHash<int, QByteArray> roleNames() const;
                Q_INVOKABLE int getRow(int dev_id);
                Q_INVOKABLE int getDevId(int row);
            public slots:
                void beginSetModel();
                void addPlace(int dev_id,int place_number);
                void addRow(int dev_id,int place_number);
                void removeRow(int dev_id);
                void endSetModel();
            signals:
            
            private slots:
                QVariant getRoleData(int role,int row) const;
            private:
                QVector<DevPlaceDataStruct*> vector;
              //  QMap<int,DevPlaceDataStruct*> modelMap;
                QHash<int, QByteArray> roles;
                int     curr_dev_id;
            };
            
            #include "dev-place-model.h"
            
            DevPlaceModel::DevPlaceModel(QObject *parent):QAbstractListModel(parent) {
            
                roles[IdRole] = "id_role";
                roles[TextRole]= "text_role";
                roles[RowRole]= "row_role";
            
                curr_dev_id=0;
            }
            QHash<int, QByteArray> DevPlaceModel::roleNames() const {
                return roles;
            }
            QVariant DevPlaceModel::data(const QModelIndex &index, int role) const {
                if(!index.isValid()) {
                    return QVariant();
                }
                if(roles.contains(role) && vector.count()-1>=index.row()) {
                    return getRoleData(role,index.row());
                }
            //    if(roles.contains(role) && modelMap.contains(index.row())) {
            //        return getRoleData(role,index.row());
            //    }
                return QVariant();
            }
            QVariant DevPlaceModel::getRoleData(int role, int row) const {
                DevPlaceDataStruct *p=vector.at(row);
            //    DevPlaceDataStruct *p=modelMap[row];
                switch(role) {
                case IdRole:
                    return QVariant(p->dev_id);
                case TextRole:
                    return QVariant(p->text);
                case RowRole:
            //        return QVariant(p->row);
                    return QVariant(row);
                default:
                    qWarning()<<"DevPlaceModel::getRoleData there is no role:"<<role;
                }
            }
            void DevPlaceModel::beginSetModel() {
                beginResetModel();
                for(int i=0;i<vector.count();i++) {
                    delete vector.at(i);
                }
                vector.clear();
            
            //    beginResetModel();
            //    if(modelMap.count()) {
            //        QMapIterator<int,DevPlaceDataStruct*> i(modelMap);
            //        while(i.hasNext()) {
            //            i.next();
            //            delete i.value();
            //        }
            //        modelMap.clear();
            //    }
            }
            void DevPlaceModel::addPlace(int dev_id, int place_number) {
                qDebug()<<"DevPlaceModel::addPlace dev_id:"<<dev_id<<" place_number:"<<place_number;
                DevPlaceDataStruct *p=new DevPlaceDataStruct;
                p->dev_id=dev_id;
                p->text=QString("Miejsce: %1").arg(place_number);
                p->place_number=place_number;
                vector.append(p);
            //    p->row=modelMap.count();
            //    modelMap.insert(p->row,p);
            }
            void DevPlaceModel::endSetModel() {
                emit endResetModel();
            }
            void DevPlaceModel::addRow(int dev_id, int place_number) {
                int row=-1;
                for(int i=0;i<vector.count();i++) {
                    DevPlaceDataStruct *d=vector.at(i);
                    if(d->place_number>=place_number) {
                        row=((i-1)<0 ? 0 : i-1);
                        break;
                    }
                }
                if(row==-1) {
                    row=vector.count();
                }
                DevPlaceDataStruct *em=new DevPlaceDataStruct;
                em->dev_id=dev_id;
                em->text=QString("Miejsce: %1").arg(place_number);
                em->place_number=place_number;
                emit beginInsertRows(QModelIndex(),row,row);
                vector.insert(row,em);
                emit endInsertRows();
                qDebug()<<"DevPlaceModel::addRow dev_id:"<<dev_id<<" place_number:"<<place_number<<" row:"<<row<<" count:"<<vector.count();
            
            //    int row=-1;
            //    bool found=false;
            //    int new_idx=0;
            //    QMap<int,DevPlaceDataStruct*> new_modelMap;
            //    QMapIterator<int,DevPlaceDataStruct*> i(modelMap);
            //    while(i.hasNext()) {
            //        i.next();
            //        if(!found && i.value()->place_number>=place_number) {
            //            row=((i.value()->row-1)<0 ? 0 : i.value()->row-1);
            //            found=true;
            //            new_idx++;
            //        }
            //        i.value()->row==new_idx;
            //        new_modelMap.insert(new_idx,i.value());
            //        new_idx++;
            
            //    }
            //    if(row==-1) {
            //        row=modelMap.count();
            //    }
            //    DevPlaceDataStruct *em=new DevPlaceDataStruct;
            //    em->dev_id=dev_id;
            //    em->text=QString("Miejsce: %1").arg(place_number);
            //    em->place_number=place_number;
            //    em->row=row;
            //    emit beginInsertRows(QModelIndex(),row,row);
            //    new_modelMap.insert(em->row,em);
            //    modelMap.clear();
            //    modelMap=new_modelMap;
            //    emit endInsertRows();
            //    qDebug()<<"DevPlaceModel::addRow dev_id:"<<dev_id<<" place_number:"<<place_number<<" row:"<<row<<" count:"<<modelMap.count();
            
            }
            void DevPlaceModel::removeRow(int dev_id) {
                int row=-1;
                for(int i=0;i<vector.count();i++) {
                    DevPlaceDataStruct *d=vector.at(i);
                    if(d->dev_id==dev_id) {
                        row=i;
                        break;
                    }
                }
                if(row>=0) {
                    beginRemoveRows(QModelIndex(),row,row);
                    delete vector.at(row);
                    vector.remove(row);
                    endRemoveRows();
                }
                qDebug()<<"DevPlaceModel::removeRow dev_id:"<<dev_id<<" row:"<<row<<" count:"<<vector.count();
            
            //    int row=-1;
            //    int new_idx=0;
            //    QMap<int,DevPlaceDataStruct*> new_modelMap;
            //    QMapIterator<int,DevPlaceDataStruct*> i(modelMap);
            //    while(i.hasNext()) {
            //        i.next();
            //        if(i.value()->dev_id==dev_id) {
            //            row=i.key();
            //        }
            //        else {
            //            i.value()->row=new_idx;
            //            new_modelMap.insert(new_idx,i.value());
            //            new_idx++;
            //        }
            //    }
            //    if(row<0) {
            //        qWarning()<<"DevPlaceModel::removeRow no row:"<<row;
            //        return;
            //    }
            //    beginRemoveRows(QModelIndex(),row,row);
            //    delete modelMap[row];
            //    modelMap.clear();
            //    modelMap=new_modelMap;
            //    endRemoveRows();
            //    qDebug()<<"DevPlaceModel::removeRow dev_id:"<<dev_id<<" row:"<<row<<" count:"<<modelMap.count();
            }
            int DevPlaceModel::getRow(int dev_id) {
                for(int i=0;i<vector.count();i++) {
                    DevPlaceDataStruct *d=vector.at(i);
                    if(d->dev_id==dev_id)
                        return i;
                }
                return -1;
            
            //    QMapIterator<int,DevPlaceDataStruct*> i(modelMap);
            //    while(i.hasNext()) {
            //        i.next();
            //        if(i.value()->dev_id==dev_id)
            //            return i.value()->row;
            //    }
            //    return 0;
            }
            int DevPlaceModel::getDevId(int row) {
                if(vector.count()-1>=row) {
                    qWarning()<<"DevPlaceModel::getDevId there is no row:"<<row;
                    return 0;
                }
                return vector.at(row)->dev_id;
            
            //    if(!modelMap.contains(row)) {
            //        qWarning()<<"DevPlaceModel::getDevId there is no row:"<<row;
            //        return 0;
            //    }
            //    return modelMap[row]->dev_id;
            }
            
            QControls2.ComboBox {
                        id:placeCombo
                        anchors.top:addressText.bottom
                        anchors.horizontalCenter: parent.horizontalCenter
                        width:parent.width*0.6
                        height:parent.height*0.15
                        model: DevPlaceModel
                        textRole:"text_role"
                       // currentIndex:DevPlaceModel.getRow(root.dev_id)
                    }
            
            JonBJ 1 Reply Last reply
            0
            • M Marek

              Hi
              Actually I have problem with both methods QVector and QMap it gives me the same result.
              Problem is when I remove row=0 and then I add item which should go into row=0.
              Result is that I have in view: Item1, Item2, black space, item3.
              When I add row in the middle or at the end it is OK.
              When I'm checking debug it looks like it should work, row is correct, model count is correct

              DevPlaceModel::removeRow dev_id: 74  row: 0  count: 2
              DevPlaceModel::addRow dev_id: 74  place_number: 1  row: 0  count: 3
              

              I have attached cpp, h and qml file.
              Cpp and h has commented out version with QMap, so it works with QVector, but both methods have a problem with row=0.
              At the beginning I'm settings model from another class by calling
              beginSetModel();
              addPlace(int dev_id,int place_number);
              endSetModel();

              When model is set I'm using
              addRow(int dev_id,int place_number);
              removeRow(int dev_id);

              Can someone shed some light?

              Best,
              Marek

              #include <QtCore>
              #include <QAbstractListModel>
              #include <QtXml/QDomNode>
              #include <QtXml/QDomElement>
              #include <QGeoCoordinate>
              #include <QGeoRectangle>
              #include "helper.h"
              
              
              struct DevPlaceDataStruct {
                  int         row;
                  int         dev_id;
                  int         place_number;
                  QString     text;
              };
              
              class DevPlaceModel : public QAbstractListModel
              {
                  Q_OBJECT
              public:
                  enum ItemRoles {
                      IdRole = Qt::UserRole + 1,
                      TextRole = Qt::UserRole + 2,
                      RowRole = Qt::UserRole + 3,
                  };
              
                  DevPlaceModel(QObject *parent);
              
                  virtual int rowCount(const QModelIndex&) const { return vector.count(); }
                //  virtual int rowCount(const QModelIndex&) const { return modelMap.count(); }
                  virtual QVariant data(const QModelIndex &index, int role) const;
              
                  QHash<int, QByteArray> roleNames() const;
                  Q_INVOKABLE int getRow(int dev_id);
                  Q_INVOKABLE int getDevId(int row);
              public slots:
                  void beginSetModel();
                  void addPlace(int dev_id,int place_number);
                  void addRow(int dev_id,int place_number);
                  void removeRow(int dev_id);
                  void endSetModel();
              signals:
              
              private slots:
                  QVariant getRoleData(int role,int row) const;
              private:
                  QVector<DevPlaceDataStruct*> vector;
                //  QMap<int,DevPlaceDataStruct*> modelMap;
                  QHash<int, QByteArray> roles;
                  int     curr_dev_id;
              };
              
              #include "dev-place-model.h"
              
              DevPlaceModel::DevPlaceModel(QObject *parent):QAbstractListModel(parent) {
              
                  roles[IdRole] = "id_role";
                  roles[TextRole]= "text_role";
                  roles[RowRole]= "row_role";
              
                  curr_dev_id=0;
              }
              QHash<int, QByteArray> DevPlaceModel::roleNames() const {
                  return roles;
              }
              QVariant DevPlaceModel::data(const QModelIndex &index, int role) const {
                  if(!index.isValid()) {
                      return QVariant();
                  }
                  if(roles.contains(role) && vector.count()-1>=index.row()) {
                      return getRoleData(role,index.row());
                  }
              //    if(roles.contains(role) && modelMap.contains(index.row())) {
              //        return getRoleData(role,index.row());
              //    }
                  return QVariant();
              }
              QVariant DevPlaceModel::getRoleData(int role, int row) const {
                  DevPlaceDataStruct *p=vector.at(row);
              //    DevPlaceDataStruct *p=modelMap[row];
                  switch(role) {
                  case IdRole:
                      return QVariant(p->dev_id);
                  case TextRole:
                      return QVariant(p->text);
                  case RowRole:
              //        return QVariant(p->row);
                      return QVariant(row);
                  default:
                      qWarning()<<"DevPlaceModel::getRoleData there is no role:"<<role;
                  }
              }
              void DevPlaceModel::beginSetModel() {
                  beginResetModel();
                  for(int i=0;i<vector.count();i++) {
                      delete vector.at(i);
                  }
                  vector.clear();
              
              //    beginResetModel();
              //    if(modelMap.count()) {
              //        QMapIterator<int,DevPlaceDataStruct*> i(modelMap);
              //        while(i.hasNext()) {
              //            i.next();
              //            delete i.value();
              //        }
              //        modelMap.clear();
              //    }
              }
              void DevPlaceModel::addPlace(int dev_id, int place_number) {
                  qDebug()<<"DevPlaceModel::addPlace dev_id:"<<dev_id<<" place_number:"<<place_number;
                  DevPlaceDataStruct *p=new DevPlaceDataStruct;
                  p->dev_id=dev_id;
                  p->text=QString("Miejsce: %1").arg(place_number);
                  p->place_number=place_number;
                  vector.append(p);
              //    p->row=modelMap.count();
              //    modelMap.insert(p->row,p);
              }
              void DevPlaceModel::endSetModel() {
                  emit endResetModel();
              }
              void DevPlaceModel::addRow(int dev_id, int place_number) {
                  int row=-1;
                  for(int i=0;i<vector.count();i++) {
                      DevPlaceDataStruct *d=vector.at(i);
                      if(d->place_number>=place_number) {
                          row=((i-1)<0 ? 0 : i-1);
                          break;
                      }
                  }
                  if(row==-1) {
                      row=vector.count();
                  }
                  DevPlaceDataStruct *em=new DevPlaceDataStruct;
                  em->dev_id=dev_id;
                  em->text=QString("Miejsce: %1").arg(place_number);
                  em->place_number=place_number;
                  emit beginInsertRows(QModelIndex(),row,row);
                  vector.insert(row,em);
                  emit endInsertRows();
                  qDebug()<<"DevPlaceModel::addRow dev_id:"<<dev_id<<" place_number:"<<place_number<<" row:"<<row<<" count:"<<vector.count();
              
              //    int row=-1;
              //    bool found=false;
              //    int new_idx=0;
              //    QMap<int,DevPlaceDataStruct*> new_modelMap;
              //    QMapIterator<int,DevPlaceDataStruct*> i(modelMap);
              //    while(i.hasNext()) {
              //        i.next();
              //        if(!found && i.value()->place_number>=place_number) {
              //            row=((i.value()->row-1)<0 ? 0 : i.value()->row-1);
              //            found=true;
              //            new_idx++;
              //        }
              //        i.value()->row==new_idx;
              //        new_modelMap.insert(new_idx,i.value());
              //        new_idx++;
              
              //    }
              //    if(row==-1) {
              //        row=modelMap.count();
              //    }
              //    DevPlaceDataStruct *em=new DevPlaceDataStruct;
              //    em->dev_id=dev_id;
              //    em->text=QString("Miejsce: %1").arg(place_number);
              //    em->place_number=place_number;
              //    em->row=row;
              //    emit beginInsertRows(QModelIndex(),row,row);
              //    new_modelMap.insert(em->row,em);
              //    modelMap.clear();
              //    modelMap=new_modelMap;
              //    emit endInsertRows();
              //    qDebug()<<"DevPlaceModel::addRow dev_id:"<<dev_id<<" place_number:"<<place_number<<" row:"<<row<<" count:"<<modelMap.count();
              
              }
              void DevPlaceModel::removeRow(int dev_id) {
                  int row=-1;
                  for(int i=0;i<vector.count();i++) {
                      DevPlaceDataStruct *d=vector.at(i);
                      if(d->dev_id==dev_id) {
                          row=i;
                          break;
                      }
                  }
                  if(row>=0) {
                      beginRemoveRows(QModelIndex(),row,row);
                      delete vector.at(row);
                      vector.remove(row);
                      endRemoveRows();
                  }
                  qDebug()<<"DevPlaceModel::removeRow dev_id:"<<dev_id<<" row:"<<row<<" count:"<<vector.count();
              
              //    int row=-1;
              //    int new_idx=0;
              //    QMap<int,DevPlaceDataStruct*> new_modelMap;
              //    QMapIterator<int,DevPlaceDataStruct*> i(modelMap);
              //    while(i.hasNext()) {
              //        i.next();
              //        if(i.value()->dev_id==dev_id) {
              //            row=i.key();
              //        }
              //        else {
              //            i.value()->row=new_idx;
              //            new_modelMap.insert(new_idx,i.value());
              //            new_idx++;
              //        }
              //    }
              //    if(row<0) {
              //        qWarning()<<"DevPlaceModel::removeRow no row:"<<row;
              //        return;
              //    }
              //    beginRemoveRows(QModelIndex(),row,row);
              //    delete modelMap[row];
              //    modelMap.clear();
              //    modelMap=new_modelMap;
              //    endRemoveRows();
              //    qDebug()<<"DevPlaceModel::removeRow dev_id:"<<dev_id<<" row:"<<row<<" count:"<<modelMap.count();
              }
              int DevPlaceModel::getRow(int dev_id) {
                  for(int i=0;i<vector.count();i++) {
                      DevPlaceDataStruct *d=vector.at(i);
                      if(d->dev_id==dev_id)
                          return i;
                  }
                  return -1;
              
              //    QMapIterator<int,DevPlaceDataStruct*> i(modelMap);
              //    while(i.hasNext()) {
              //        i.next();
              //        if(i.value()->dev_id==dev_id)
              //            return i.value()->row;
              //    }
              //    return 0;
              }
              int DevPlaceModel::getDevId(int row) {
                  if(vector.count()-1>=row) {
                      qWarning()<<"DevPlaceModel::getDevId there is no row:"<<row;
                      return 0;
                  }
                  return vector.at(row)->dev_id;
              
              //    if(!modelMap.contains(row)) {
              //        qWarning()<<"DevPlaceModel::getDevId there is no row:"<<row;
              //        return 0;
              //    }
              //    return modelMap[row]->dev_id;
              }
              
              QControls2.ComboBox {
                          id:placeCombo
                          anchors.top:addressText.bottom
                          anchors.horizontalCenter: parent.horizontalCenter
                          width:parent.width*0.6
                          height:parent.height*0.15
                          model: DevPlaceModel
                          textRole:"text_role"
                         // currentIndex:DevPlaceModel.getRow(root.dev_id)
                      }
              
              JonBJ Offline
              JonBJ Offline
              JonB
              wrote on last edited by
              #7

              @Marek
              Two observations:

              1. It does not actually matter, but why does your beginSetModel() call beginResetModel(); directly while endSetModel() does an emit endResetModel();?

              2. Your addRow()'s row=((i-1)<0 ? 0 : i-1); returns 0 for all 3 row == -1 and row == 0 and row == 1. Is that related to your problem?

              M 1 Reply Last reply
              0
              • JonBJ JonB

                @Marek
                Two observations:

                1. It does not actually matter, but why does your beginSetModel() call beginResetModel(); directly while endSetModel() does an emit endResetModel();?

                2. Your addRow()'s row=((i-1)<0 ? 0 : i-1); returns 0 for all 3 row == -1 and row == 0 and row == 1. Is that related to your problem?

                M Offline
                M Offline
                Marek
                wrote on last edited by
                #8

                @JonB

                1. My mistake shold call endResetModel
                2. This is correct I think, It is in loop from i=0 to vector.count. So when I have items (2,3) in vector and I'm adding item 1, it will go to row=0
                  When I have items 1,3 and I'm adding item 2 it will go to row=1
                  Right?
                JonBJ 1 Reply Last reply
                0
                • M Marek

                  @JonB

                  1. My mistake shold call endResetModel
                  2. This is correct I think, It is in loop from i=0 to vector.count. So when I have items (2,3) in vector and I'm adding item 1, it will go to row=0
                    When I have items 1,3 and I'm adding item 2 it will go to row=1
                    Right?
                  JonBJ Offline
                  JonBJ Offline
                  JonB
                  wrote on last edited by
                  #9

                  @Marek
                  I don't know, I don't claim to follow your code. I'm just "surprised" that an insert where row == 0 and row == 1 both map to row 0.

                  M 1 Reply Last reply
                  0
                  • JonBJ JonB

                    @Marek
                    I don't know, I don't claim to follow your code. I'm just "surprised" that an insert where row == 0 and row == 1 both map to row 0.

                    M Offline
                    M Offline
                    Marek
                    wrote on last edited by
                    #10

                    @JonB IMHO model is OK, when I remove and then add item 1 (I have 1,2,3) from debug I have:

                    DevPlaceModel::removeRow dev_id: 74  row: 0  count: 2
                    DevPlaceModel::addRow dev_id: 74  place_number: 1  row: 0  count: 3  vector: QVector(0x5636891742c0, 0x56368c2e0a90, 0x56368c23d700)
                    

                    So view should have 3 items, instead there is like in image (0_1536919537683_test.png

                    1 Reply Last reply
                    0
                    • M Offline
                      M Offline
                      Marek
                      wrote on last edited by
                      #11

                      Hi
                      Sorry for late reply. I don't have this problem in view like ListView, maybe it is some bug in QControls Combo, I need to prepare sample and report.
                      Definitelly using QVector instead of QMap is more convinient in model,
                      thanks for the hint.
                      Best,
                      Marek

                      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