2013-03-29 3 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() является правильным выбором.