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. Add form widget in QTableview using model view
Forum Updated to NodeBB v4.3 + New Features

Add form widget in QTableview using model view

Scheduled Pinned Locked Moved Unsolved General and Desktop
20 Posts 5 Posters 4.0k 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.
  • SGaistS Offline
    SGaistS Offline
    SGaist
    Lifetime Qt Champion
    wrote on last edited by
    #4

    Hi,

    Can you show your Delegate class code ?

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

    J 1 Reply Last reply
    0
    • SGaistS SGaist

      Hi,

      Can you show your Delegate class code ?

      J Offline
      J Offline
      JadeN001
      wrote on last edited by
      #5

      @SGaist

      #include "delegate.h"
      #include<QDebug>
      Delegate::Delegate(QObject *parent):QItemDelegate(parent)
      {
      
      }
      
      Delegate::~Delegate() {
      
      }
      
      QWidget *Delegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
      {
      
          clientForm *CF=new clientForm(parent);
          qDebug()<<"in creatEditer";
          return CF;
      
      }
      
      void Delegate::setEditorData(QWidget *editor, const QModelIndex &index) const
      {
      
      }
      
      void Delegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
      {
      
      }
      
      QSize Delegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
      {
          return QSize(256,192);
      }
      
      void Delegate::updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const
      {
          qDebug()<<"in geometry..";
        editor->setGeometry(option.rect);
      
      }
      
      
      1 Reply Last reply
      0
      • J Offline
        J Offline
        JadeN001
        wrote on last edited by
        #6

        how to add row and column as needed in Qtableview

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

          The QTableView shows what the model has to give. If the model says 8 column then the table view will show 8.

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

          J 1 Reply Last reply
          1
          • SGaistS SGaist

            The QTableView shows what the model has to give. If the model says 8 column then the table view will show 8.

            J Offline
            J Offline
            JadeN001
            wrote on last edited by JadeN001
            #8

            @SGaist okay It means I have to manage model.

            1 Reply Last reply
            0
            • J Offline
              J Offline
              JadeN001
              wrote on last edited by
              #9

              In my code i have used insertrow() in my QStandardItemModel.

              void MainWindow::seteditor()
              {
              
                 model=new QStandardItemModel(this);
              
                  QStandardItem *item=new QStandardItem(" ");
                  ui->tableView->setModel(model);
              
                    for(int row=0;row<4;++row)
                    {
                         model->insertRow(row,item);
                         QModelIndex index= model->index(row,1,QModelIndex());
                       ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
                      ui->tableView->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
                         ui->tableView->setItemDelegate(D);
                         ui->tableView->openPersistentEditor(index);  '<- not working'
              
              
                    }
              
              
              
                      }
              

              however if I use :

                 model=new QStandardItemModel(8,2,this);
              
              

              instead of

                 model=new QStandardItemModel(this);
              
              

              It works properly.But I want to use first approach.Where I am doing mistake?

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

                Hi
                You mean like
                model=new QStandardItemModel(this);
                model->setRowCount(8):
                model->setColumnCount(2):

                J 1 Reply Last reply
                1
                • mrjjM mrjj

                  Hi
                  You mean like
                  model=new QStandardItemModel(this);
                  model->setRowCount(8):
                  model->setColumnCount(2):

                  J Offline
                  J Offline
                  JadeN001
                  wrote on last edited by
                  #11

                  @mrjj I want to increase number of cells based on client connection.So for that i have to use counter for generating rows and columns.

                  It is helpful to use
                  model=new QStandardItemModel(this);
                  model->setRowCount(8):
                  model->setColumnCount(2):
                  Instead of model=new QStandardItemModel(8,2,this); so that i can set rows and column based on requirments.

                  I am on right track or not i don't.suggest me if there is ant better way for my scenario.

                  mrjjM 1 Reply Last reply
                  0
                  • J JadeN001

                    @mrjj I want to increase number of cells based on client connection.So for that i have to use counter for generating rows and columns.

                    It is helpful to use
                    model=new QStandardItemModel(this);
                    model->setRowCount(8):
                    model->setColumnCount(2):
                    Instead of model=new QStandardItemModel(8,2,this); so that i can set rows and column based on requirments.

                    I am on right track or not i don't.suggest me if there is ant better way for my scenario.

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

                    @JadeN001
                    Hi
                    you should test if
                    void QStandardItemModel::appendRow(const QList<QStandardItem *> & items)
                    does not auto increase row count also.

                    J 1 Reply Last reply
                    1
                    • mrjjM mrjj

                      @JadeN001
                      Hi
                      you should test if
                      void QStandardItemModel::appendRow(const QList<QStandardItem *> & items)
                      does not auto increase row count also.

                      J Offline
                      J Offline
                      JadeN001
                      wrote on last edited by JadeN001
                      #13

                      @mrjj thanks..
                      It does not auto increase row count

                      mrjjM 1 Reply Last reply
                      1
                      • J JadeN001

                        @mrjj thanks..
                        It does not auto increase row count

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

                        @JadeN001
                        ok, so u have to manage that yourself

                        JonBJ 1 Reply Last reply
                        0
                        • mrjjM mrjj

                          @JadeN001
                          ok, so u have to manage that yourself

                          JonBJ Offline
                          JonBJ Offline
                          JonB
                          wrote on last edited by
                          #15

                          @mrjj , @JadeN001

                          It does not auto increase row count

                          You guys are claiming that QStandardItemModel::rowCount() remains unchanged after QStandardItemModel::appendRow()? Surely something is wrong here....?

                          mrjjM 1 Reply Last reply
                          2
                          • JonBJ JonB

                            @mrjj , @JadeN001

                            It does not auto increase row count

                            You guys are claiming that QStandardItemModel::rowCount() remains unchanged after QStandardItemModel::appendRow()? Surely something is wrong here....?

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

                            @JonB
                            Nope, i said check it as it really sound it would. ( append in name)
                            But docs says
                            "Appends a row containing items. If necessary, the column count is increased to the size of items."
                            And no mention of rowCount.
                            But i really suspect it would so if you says it does, i believe you over the docs.

                            JonBJ 1 Reply Last reply
                            0
                            • mrjjM mrjj

                              @JonB
                              Nope, i said check it as it really sound it would. ( append in name)
                              But docs says
                              "Appends a row containing items. If necessary, the column count is increased to the size of items."
                              And no mention of rowCount.
                              But i really suspect it would so if you says it does, i believe you over the docs.

                              JonBJ Offline
                              JonBJ Offline
                              JonB
                              wrote on last edited by
                              #17

                              @mrjj

                              "Appends a row containing items. If necessary, the column count is increased to the size of items."
                              And no mention of rowCount.

                              My belief is that this should be interpreted as: of course the row count increases, as it would for anything, that goes without saying; if the columns in the row exceed current columns then you might not realize but the column count is increased [too].

                              The only other interpretation is that another is removed to maintain the row count, but then I think it would say and you would notice.

                              But it's pure speculation.

                              mrjjM 1 Reply Last reply
                              1
                              • JonBJ JonB

                                @mrjj

                                "Appends a row containing items. If necessary, the column count is increased to the size of items."
                                And no mention of rowCount.

                                My belief is that this should be interpreted as: of course the row count increases, as it would for anything, that goes without saying; if the columns in the row exceed current columns then you might not realize but the column count is increased [too].

                                The only other interpretation is that another is removed to maintain the row count, but then I think it would say and you would notice.

                                But it's pure speculation.

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

                                @JonB
                                Also my belief so i wanted poster to test it out :)
                                by outputting rowCount before and after append.

                                JonBJ 1 Reply Last reply
                                1
                                • mrjjM mrjj

                                  @JonB
                                  Also my belief so i wanted poster to test it out :)
                                  by outputting rowCount before and after append.

                                  JonBJ Offline
                                  JonBJ Offline
                                  JonB
                                  wrote on last edited by
                                  #19

                                  @mrjj
                                  I find it hard to believe it did not increase. Unless the row did not get added.

                                  mrjjM 1 Reply Last reply
                                  1
                                  • JonBJ JonB

                                    @mrjj
                                    I find it hard to believe it did not increase. Unless the row did not get added.

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

                                    @JonB
                                    me too. Worst name ever if it didnt.
                                    So most likely poster had other issue.

                                    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