在不同的视图中上下移动QListWidget中的项目

Moving items up and down in a QListWidget in different view

本文关键字:移动 QListWidget 项目 上下 视图      更新时间:2023-10-16

我正在尝试以编程方式移动列表小部件项。如果移动在当前视图中,我可以成功地移动列表小部件。如果我试图在视图中移动列表小部件项目(即使用滚动条),则移动无法按预期工作。即列表小部件项目没有反映

代码剪切:

void func(int fromPage, int toPage)
{
 QListWidget* expListWidget =i.next();
 QListWidgetItem* widgetItem = expListWidget->takeItem(fromPage);
 expListWidget->insertItem(toPage,widgetItem);
}

下面是一个如何独立于项目所在位置上下移动项目的示例:

QListWidget* lw1 = new QListWidget;
for (int i = 0; i < 500 ; i++)
{
    QListWidgetItem* item = new QListWidgetItem(QString::number(i));
    lw1->addItem(item);
}
//move from lower part to the top
QListWidgetItem* i = lw1->takeItem(400);
lw1->insertItem(0, i);
//move from the top to the lower part of the list
i = lw1->takeItem(1);
lw1->insertItem(400, i);