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

    I'm able to create 1 instance below
    videoNewItem = new QListWidgetItem("videoNewItem", ui->video_listWidget);
    How to create multiple such objects?

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

    @kishore_hemmady I don't understand the question. You create other objects in the same way you create the one in your example. What does not work?

    videoNewItem1 = new QListWidgetItem("videoNewItem", ui->video_listWidget);
    videoNewItem2 = new QListWidgetItem("videoNewItem", ui->video_listWidget);
    videoNewItem3 = new QListWidgetItem("videoNewItem", ui->video_listWidget);
    ...
    

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

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

      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 1 Reply Last reply
      0
      • 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