Здравствуйте
Понадобилось мне в QTableView отобразить записи таблицы БД, но отсортировать их не по одной колонке, как я раньше делала, а по нескольким одновременно.
(Есть, например, в таблице поля A, B, C, D, F1, F2. Надо отсортировать записи по возрастанию значений поля A, записи с одинаковым А надо еще отсортировать по возрастанию B, с одинаковыми A и B - по возрастанию C, с одинаковыми A, B и C - по возрастанию D.)
В книге Земскова есть пример multisort для QTableWidget. Там оператор, щелкая по заголовкам столбцов в том порядке, в каком хочет, выбирает, по каким колонкам надо отсортировать таблицу и как сортировать: по возрастанию или убыванию.
Мне в программе пока не требуется, чтобы оператор выбирал, по каким полям сортировать таблицу. Мне надо жестко задать сортировку таблицы по возрастанию полей A, B, C, D.
Как это сделать для QTableView?
Не хочется использовать QTableWidget, у меня везде в программе используются QTableView, для которых установлены модели. А у QTableWidget нет метода setModel, есть только setItem.
У меня, пока что, только одно предложение, как это можно сделать, но, по-моему, не самое удачное:
Поля A, B, C, D у меня целые, при этом я знаю, сколько цифр максимально могут содержать эти поля (A - max 4 цифры, B - 3, C - 1, D - 1). Если сделать вычисляемое поле F_AAAABBBCD и записать туда A*10000 + B*100 + C*10 + D, то отсортировав таблицу по возрастанию этого поля, получим сортировку по полям A, B, C, D.
Есть другие предложения?