首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何移动QListWidgetItem?

如何移动QListWidgetItem?
EN

Stack Overflow用户
提问于 2020-05-26 21:05:56
回答 1查看 38关注 0票数 0

如何移动QListWidgetItem而不错过Item小部件?

当拖放但不能在按钮上做同样的工作时,这是有效的。

EN

回答 1

Stack Overflow用户

发布于 2020-05-27 17:35:10

代码语言:javascript
复制
removeItemWidget( item(row) );
QCoreApplication::removePostedEvents (p_widget,QEvent::DeferredDelete );

我删除了在项目中显示的小部件,并以从队列中删除删除信号的方式做了一个补丁。通过这种方式,我可以将Widget移动到另一个项目

代码语言:javascript
复制
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,...

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62022852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档