How to create multiple QListWidgetItem instances dynamically in Qt?
-
I'm able to create 1 instance below
videoNewItem = new QListWidgetItem("videoNewItem", ui->video_listWidget);
How to create multiple such objects? -
I'm able to create 1 instance below
videoNewItem = new QListWidgetItem("videoNewItem", ui->video_listWidget);
How to create multiple such objects?@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); ...
-
hi @jsulm
i need to declare an array of object for the QListWidgetItem class;
something like the belowQListWidgetItem *nodeItem;
nodeItem=new QListWidgetItem[NUMBERS]("videoNewItem", ui->video_listWidget);
how can i create the array of object here with the parameterized constructor call???
-
hi @jsulm
i need to declare an array of object for the QListWidgetItem class;
something like the belowQListWidgetItem *nodeItem;
nodeItem=new QListWidgetItem[NUMBERS]("videoNewItem", ui->video_listWidget);
how can i create the array of object here with the parameterized constructor call???
@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);
-
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
-
@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);
thank you @jsulm
How can i access the Nth items in the list. -
thank you @jsulm
How can i access the Nth items in the list.@kishore_hemmady Why don't you read documentation? http://doc.qt.io/qt-5/qlist.html
items[i]... -
@kishore_hemmady Why don't you read documentation? http://doc.qt.io/qt-5/qlist.html
items[i]...@jsulm
i am doing the same , its not showing error but crashing.
thats why asked is there any other method to do this. -
@jsulm
i am doing the same , its not showing error but crashing.
thats why asked is there any other method to do this.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. -
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.@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?
-
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 -
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@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?
-
@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?
This post is deleted! -
This post is deleted!
@kishore_hemmady I already understood before, but how this picture can help me to find the issue? The issue is in your code...
-
Hi,
That looks like over engineering. Furthermore, you are calling
insertItem
and right after thataddItem
twice with exactly the same item. Then you also update yourGUI_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.