1 Востаннє редагувалося Betterthanyou (16.06.2016 16:35:36)

Тема: Qt проблема з нумерацією таблиці, або як правильно шукати в таблиці

В мене є таблиця в якій потрібно шукати по двом стовпцям одночасно, я читав про QSortFilterProxyModel і метод setFilterRegExp але так і не знайшов інформації як шукати одночасно по двом стовпцям, все що в мене вийшло це задати ключовий стовпець setFilterKeyColumn і шукати по цьому стовпцю за допомогою регулярного виразу, тому я вирішив зробити власний метод для пошуку
Він (selectFields) отримує таблицю (QTableView), лист (масив) чисел що відповідають в яких стовпцях шукати (зараз це 1, 2. 1 - назва, 2 - виробник) і рядок(QString search) який потрібно знайти
якщо рядок не знаходиться то він просто приховується table->hideRow(i);

void table_operation::selectFields(QTableView *table, QList<int> *listColumn, QString search)
{
    int countRows( table->model()->rowCount() );// Рахує рядки
    int countColumns = listColumn->count(); // Рахує по скільком стовпцям буде вестися пошук
    bool allRecord( false ); // Відповідає чи потрібно приховувати або показувати рядок

    for(int i = 0; i < countRows; i++)// По рядкам
    {
        for(int j = 0; j < countColumns; j++) // По стовпцям
        {
            allRecord |= /* Чи є шуканий рядок */
            table->model()->index(i, listColumn->at( j )).data().toString().contains(search, Qt::CaseInsensitive);
        }
        if( allRecord )
            table->showRow(i); //Показати (хоча це не потрібно бо зараз всі рядки видно)
        else        
            table->hideRow(i); //Приховати рядок

        allRecord = false;//збити 
    }

}

Хоч метод правильно шукає але він робить нумерацію не правильною, я так розумію щоб нумерація була правильною потрібно в setVerticalHeader передати власний QHeaderView але щось в мене нічого не вийшло.
Як шукати по декількох стовпцях одночасно, або як зробити правильну нумерацію ?

Хто не зрозумів що не так з нумерацією

10, 11 а має бути 1, 2
http://replace.org.ua/misc.php?action=pun_attachment&amp;item=1312&amp;download=0

Post's attachments

Untitled.png 5.58 kb, 168 downloads since 2016-06-16