Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. How to create multiple QListWidgetItem instances dynamically in Qt?
Forum Updated to NodeBB v4.3 + New Features

How to create multiple QListWidgetItem instances dynamically in Qt?

Scheduled Pinned Locked Moved Unsolved Mobile and Embedded
15 Posts 4 Posters 3.2k 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.
  • K kishore_hemmady

    hi @jsulm
    i need to declare an array of object for the QListWidgetItem class;
    something like the below

    QListWidgetItem *nodeItem;

    nodeItem=new QListWidgetItem[NUMBERS]("videoNewItem", ui->video_listWidget);

    how can i create the array of object here with the parameterized constructor call???

    jsulmJ Offline
    jsulmJ Offline
    jsulm
    Lifetime Qt Champion
    wrote on last edited by jsulm
    #4

    @kishore_hemmady Why do you want to have an array? You can use a QVector or QList:

    QList<QListWidgetItem*> items;
    for (int i = 0; i < 10; ++i)
        items.append(new QListWidgetItem(QString("videoNewItem_") + i, ui->video_listWidget));
    

    If you really want to have an array:

    QListWidgetItem* items[10];
    for (int i = 0; i < 10; ++i)
        items[i] = new QListWidgetItem(QString("videoNewItem_") + i, ui->video_listWidget);
    

    https://forum.qt.io/topic/113070/qt-code-of-conduct

    K 1 Reply Last reply
    3
    • J.HilkJ Offline
      J.HilkJ Offline
      J.Hilk
      Moderators
      wrote on last edited by
      #5

      additionaly to what @jsulm said,

      a QlistWidgetItem is rather useless without QListWidget to put them into, and QListWidget has 3 functions to access any QListWidgetItem it contains:

      • QListWidgetItem * item(int row) const
      • QListWidgetItem * itemAt(const QPoint & p) const
      • QListWidgetItem * itemAt(int x, int y) const

      Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


      Q: What's that?
      A: It's blue light.
      Q: What does it do?
      A: It turns blue.

      1 Reply Last reply
      2
      • jsulmJ jsulm

        @kishore_hemmady Why do you want to have an array? You can use a QVector or QList:

        QList<QListWidgetItem*> items;
        for (int i = 0; i < 10; ++i)
            items.append(new QListWidgetItem(QString("videoNewItem_") + i, ui->video_listWidget));
        

        If you really want to have an array:

        QListWidgetItem* items[10];
        for (int i = 0; i < 10; ++i)
            items[i] = new QListWidgetItem(QString("videoNewItem_") + i, ui->video_listWidget);
        
        K Offline
        K Offline
        kishore_hemmady
        wrote on last edited by
        #6

        thank you @jsulm
        How can i access the Nth items in the list.

        jsulmJ 1 Reply Last reply
        0
        • K kishore_hemmady

          thank you @jsulm
          How can i access the Nth items in the list.

          jsulmJ Offline
          jsulmJ Offline
          jsulm
          Lifetime Qt Champion
          wrote on last edited by
          #7

          @kishore_hemmady Why don't you read documentation? http://doc.qt.io/qt-5/qlist.html
          items[i]...

          https://forum.qt.io/topic/113070/qt-code-of-conduct

          K 1 Reply Last reply
          1
          • jsulmJ jsulm

            @kishore_hemmady Why don't you read documentation? http://doc.qt.io/qt-5/qlist.html
            items[i]...

            K Offline
            K Offline
            kishore_hemmady
            wrote on last edited by
            #8

            @jsulm
            i am doing the same , its not showing error but crashing.
            thats why asked is there any other method to do this.

            K 1 Reply Last reply
            0
            • K kishore_hemmady

              @jsulm
              i am doing the same , its not showing error but crashing.
              thats why asked is there any other method to do this.

              K Offline
              K Offline
              kishore_hemmady
              wrote on last edited by
              #9

              @jsulm

              HI

              this is my code for getting playlist for video files for different video zones.

              QList<QListWidgetItem*> videoNewItem
              for(INT32 i=0;i<i32NumberOfVideoZones;i++){
                          videoNewItem.append(new QListWidgetItem(QString("videoNewItem_") + i, ui->video_listWidget));
                      }
              

              void MainWindow::on_add_file_clicked()
              {

                           int row = 1;
                        videoNewItem[i32tContainerindex] = new QListWidgetItem(QString("videoNewItem_") + i32tContainerindex,    ui->video_listWidget);
                              videoNewItem[i32tContainerindex]->setFlags (videoNewItem[i32tContainerindex]->flags() | Qt::ItemIsUserCheckable);
                             videoNewItem[i32tContainerindex]->setCheckState (Qt::Unchecked);
              
                              videoNewItem[i32tContainerindex]->setText ((ui->video_file_name_lineEdit->text()));
                              ui->video_listWidget->insertItem (row, videoNewItem[i32tContainerindex]);
                              ui->video_listWidget->addItem (videoNewItem[i32tContainerindex]);
                              ui->video_listWidget->show();
                              ui->video_file_name_lineEdit->setText ("");
                              ui->video_listWidget->addItem (videoNewItem[i32tContainerindex]);
                              ui->video_listWidget->repaint();
                              GUI_videostruct[i32tContainerindex].videoFileName=ui->video_listWidget->item(0)->text();
              

              }

              but when i change the video zone from index 0 to 1, i ll retain the value(files) of videoNewItem[0] in videoNewItem[1] listWidget playlist
              i want to get the different files for different zones.

              jsulmJ 1 Reply Last reply
              0
              • K kishore_hemmady

                @jsulm

                HI

                this is my code for getting playlist for video files for different video zones.

                QList<QListWidgetItem*> videoNewItem
                for(INT32 i=0;i<i32NumberOfVideoZones;i++){
                            videoNewItem.append(new QListWidgetItem(QString("videoNewItem_") + i, ui->video_listWidget));
                        }
                

                void MainWindow::on_add_file_clicked()
                {

                             int row = 1;
                          videoNewItem[i32tContainerindex] = new QListWidgetItem(QString("videoNewItem_") + i32tContainerindex,    ui->video_listWidget);
                                videoNewItem[i32tContainerindex]->setFlags (videoNewItem[i32tContainerindex]->flags() | Qt::ItemIsUserCheckable);
                               videoNewItem[i32tContainerindex]->setCheckState (Qt::Unchecked);
                
                                videoNewItem[i32tContainerindex]->setText ((ui->video_file_name_lineEdit->text()));
                                ui->video_listWidget->insertItem (row, videoNewItem[i32tContainerindex]);
                                ui->video_listWidget->addItem (videoNewItem[i32tContainerindex]);
                                ui->video_listWidget->show();
                                ui->video_file_name_lineEdit->setText ("");
                                ui->video_listWidget->addItem (videoNewItem[i32tContainerindex]);
                                ui->video_listWidget->repaint();
                                GUI_videostruct[i32tContainerindex].videoFileName=ui->video_listWidget->item(0)->text();
                

                }

                but when i change the video zone from index 0 to 1, i ll retain the value(files) of videoNewItem[0] in videoNewItem[1] listWidget playlist
                i want to get the different files for different zones.

                jsulmJ Offline
                jsulmJ Offline
                jsulm
                Lifetime Qt Champion
                wrote on last edited by
                #10

                @kishore_hemmady Are you talking about changing i32tContainerindex from 0 to 1? Because I don't understand your description. Where and how do you change it? Are you sure it is actually changed?

                https://forum.qt.io/topic/113070/qt-code-of-conduct

                1 Reply Last reply
                0
                • K Offline
                  K Offline
                  kishore_hemmady
                  wrote on last edited by
                  #11

                  yes I am changing i32tContainerindex from 0 to 1.
                  I am developing a page which contains listWidget, whenever i am switching from videoNewItem[0]'s listWidget to videoNewItem[1]
                  listWidget i am not able to show only videoNewItem[1] listWidget rather i am getting the content of both the listWidget

                  jsulmJ 1 Reply Last reply
                  0
                  • K kishore_hemmady

                    yes I am changing i32tContainerindex from 0 to 1.
                    I am developing a page which contains listWidget, whenever i am switching from videoNewItem[0]'s listWidget to videoNewItem[1]
                    listWidget i am not able to show only videoNewItem[1] listWidget rather i am getting the content of both the listWidget

                    jsulmJ Offline
                    jsulmJ Offline
                    jsulm
                    Lifetime Qt Champion
                    wrote on last edited by
                    #12

                    @kishore_hemmady Sorry, I don't know your code, so I don't know what you're doing wrong. Did you try to debug your app to see what happens?

                    https://forum.qt.io/topic/113070/qt-code-of-conduct

                    K 1 Reply Last reply
                    0
                    • jsulmJ jsulm

                      @kishore_hemmady Sorry, I don't know your code, so I don't know what you're doing wrong. Did you try to debug your app to see what happens?

                      K Offline
                      K Offline
                      kishore_hemmady
                      wrote on last edited by
                      #13
                      This post is deleted!
                      jsulmJ 1 Reply Last reply
                      0
                      • K kishore_hemmady

                        This post is deleted!

                        jsulmJ Offline
                        jsulmJ Offline
                        jsulm
                        Lifetime Qt Champion
                        wrote on last edited by
                        #14

                        @kishore_hemmady I already understood before, but how this picture can help me to find the issue? The issue is in your code...

                        https://forum.qt.io/topic/113070/qt-code-of-conduct

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

                          Hi,

                          That looks like over engineering. Furthermore, you are calling insertItem and right after that addItem twice with exactly the same item. Then you also update your GUI_videostruct data using an index on one side and a hardcoded value on the other side.

                          You should rather explain what exactly you are trying to achieve. Also since you are using a QListWidget, there's no real need to keep a list of the item besides since you already have them available through QListWidget.

                          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
                          1

                          • Login

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