【问题标题】:Moving an object from one QList to another将对象从一个 QList 移动到另一个
【发布时间】:2013-03-29 08:07:43
【问题描述】:

我有两个数组,分别保存活跃和不活跃的QWebPage,也就是我想限制最大运行的QWebPages,所以我这样做了,

我使用两个 QList 对象,

QList<QWebPage*> pages;  // holds remaining pages
QList<QWebPage*> active; // holds active ones

当我需要发送请求时,我会这样做:

void XXX::addRequest (QUrl url)
{
    if (pages.size() > 0)
    {
        QWebPage *page = pages.front();
        pages.pop_front();
        active.push_back (page);

        page->mainFrame().load (url);
    }
}

根据要求完成,

void XXX::finished (bool ok)
{
    QWebPage *page = qobject_cast<QWebPage*> (sender());

    // blabla

    // now I need to move this "page" to the "pages" list
}

由于一个对象可以属于多个列表(它只是一个指针),我应该将它从active QList 中删除并将其附加到pages 列表中,

但是QList只支持按索引号删除,我现在不能直接这样做。

有什么想法吗?希望不要遍历列表。

【问题讨论】:

    标签: qt4 qlist


    【解决方案1】:

    QList 是否支持按项目值删除项目,而不仅仅是按项目索引。有成员函数removeOne()removeAll()。在您的情况下, removeOne() 是正确的选择。

    【讨论】:

      猜你喜欢
      • 2012-06-30
      • 1970-01-01
      • 2018-04-30
      • 1970-01-01
      • 1970-01-01
      • 2014-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多