如何移动QListWidgetItem而不错过Item小部件?
当拖放但不能在按钮上做同样的工作时,这是有效的。
发布于 2020-05-27 17:35:10
removeItemWidget( item(row) );
QCoreApplication::removePostedEvents (p_widget,QEvent::DeferredDelete );我删除了在项目中显示的小部件,并以从队列中删除删除信号的方式做了一个补丁。通过这种方式,我可以将Widget移动到另一个项目
int DropList::moveWidget(int row, int pos)
{
const int new_row = row+pos;
if(count()>1 && row>=0 && row <count() && new_row>=0 && new_row<count())
{
// A->B
DropListItem *pA = widgetByRow(row);
DropListItem *pB = widgetByRow(new_row);
if(pB->isMovable() && pA->isMovable())
{
removeItemWidget(item(new_row));
removeItemWidget(item(row));
QCoreApplication::removePostedEvents (pB,QEvent::DeferredDelete );
QCoreApplication::removePostedEvents (pA,QEvent::DeferredDelete );
setItemWidget(item(new_row),pA);
setItemWidget(item(row),pB);
}
emit changed();
return new_row;
}
return 0;
}参数为row - is a item row pos +1,+2,-1,...
https://stackoverflow.com/questions/62022852
复制相似问题