Как эффективно выбрать подмножество строк QTableView, которые соответствуют определенным критериям?

Сначала добавьте эту строку {"имя": "John Smith", "положение": "генеральный директор", "год": "2019"} в единственной цитате, или Вы не должны использовать JSON.parse:

'{"name" : "John Smith", "position" : "CEO", "year" : "2019" }'

Тогда Вам не нужен массив, только ключи, ключи. массив .forEach. И obj [элемент]:

  keys.forEach(element => {
    newObj[element] = obj[element];
  });
5
задан Community 23 May 2017 в 11:45
поделиться

2 ответа

Используйте QSortFilterProxyModel между вашей моделью и представлением.

1
ответ дан 15 December 2019 в 01:07
поделиться
  • . Вам нужно будет определить, какие строки выбрать. Для этого выполните цикл по всей модели и определите, какие строки имеют NULL в качестве отметки времени. Для доступа к данным модели вы можете использовать QSqlQueryModel :: record () .
  • Вам нужно будет создать собственный выбор. Текущий выбор представлен классом QItemSelectionModel . Вы можете получить доступ к выбору табличного представления через QAbstractItemView :: selectionModel () и QAbstractItemView :: setSelection () .

В ответ на обновление вашего кода вы можете обойтись без цикла если вы используете QAbstractItemView :: SelectRows . Просто используйте выбор, который вы получили из QAbstractItemModel :: match () .

Что касается скорости, проверьте эффективность таблицы при сборке выпуска - я знаю, что различия между сборками отладки и выпуска велики для таких случаев, как ваш. Если вы используете Qt 4.5, вы также заметите ускорение, поскольку в этом выпуске они действительно улучшили такие элементы, как таблицы.

Текущий выбор представлен классом QItemSelectionModel . Вы можете получить доступ к выбору табличного представления через QAbstractItemView :: selectionModel () и QAbstractItemView :: setSelection () .

В ответ на обновление вашего кода вы можете обойтись без цикла если вы используете QAbstractItemView :: SelectRows . Просто используйте выбор, который вы получили из QAbstractItemModel :: match () .

Что касается скорости, проверьте эффективность таблицы при сборке выпуска - я знаю, что различия между сборками отладки и выпуска велики для таких случаев, как ваш. Если вы используете Qt 4.5, вы также заметите ускорение, поскольку в этом выпуске они действительно улучшили такие элементы, как таблицы.

Текущий выбор представлен классом QItemSelectionModel . Вы можете получить доступ к выбору табличного представления через QAbstractItemView :: selectionModel () и QAbstractItemView :: setSelection () .

В ответ на обновление вашего кода вы можете обойтись без цикла если вы используете QAbstractItemView :: SelectRows . Просто используйте выбор, который вы получили из QAbstractItemModel :: match () .

Что касается скорости, проверьте эффективность таблицы при сборке выпуска - я знаю, что различия между сборками отладки и выпуска велики для таких случаев, как ваш. Если вы используете Qt 4.5, вы также заметите ускорение, поскольку в этом выпуске они действительно улучшили такие элементы, как таблицы.

selectionModel () и QAbstractItemView :: setSelection () .

В ответ на обновление вашего кода вы можете обойтись без цикла, если используете QAbstractItemView :: SelectRows . Просто используйте выбор, который вы получили из QAbstractItemModel :: match () .

Что касается скорости, проверьте эффективность таблицы при сборке выпуска - я знаю, что различия между сборками отладки и выпуска велики для таких случаев, как ваш. Если вы используете Qt 4.5, вы также заметите ускорение, поскольку в этом выпуске они действительно улучшили такие элементы, как таблицы.

selectionModel () и QAbstractItemView :: setSelection () .

В ответ на обновление вашего кода вы можете обойтись без цикла, если используете QAbstractItemView :: SelectRows . Просто используйте выбор, который вы получили из QAbstractItemModel :: match () .

Что касается скорости, проверьте эффективность таблицы при сборке выпуска - я знаю, что различия между сборками отладки и выпуска велики для таких случаев, как ваш. Если вы используете Qt 4.5, вы также заметите ускорение, поскольку в этом выпуске они действительно улучшили такие элементы, как таблицы.

действительно проверяйте эффективность таблицы при сборке выпуска - я знаю, что различия в сборке отладки / выпуска велики для таких случаев, как ваш. Если вы используете Qt 4.5, вы также заметите ускорение, поскольку в этом выпуске они действительно улучшили такие элементы, как таблицы.

действительно проверяйте эффективность таблицы при сборке релиза - я знаю, что различия в сборке отладки / выпуска велики для таких случаев, как ваш. Если вы используете Qt 4.5, вы также заметите ускорение, поскольку в этом выпуске они действительно улучшили такие элементы, как таблицы.

0
ответ дан 15 December 2019 в 01:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: