2013-03-29 104 views
0

我有分别持有有效和无效QWebPage两个数组,就是我想限制最大跑动QWebPages,所以我这样做,移动从一个QList作一个对象到另一个

我用两个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只能通过索引号支持的缺失,我现在不能直接做到这一点。

任何想法?希望不要遍历列表。

回答

1

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

相关问题