Найти - Пользователи
Полная версия: Сортировка по нескольким столбцам в таблице QTableWidget
Начало » GUI » Сортировка по нескольким столбцам в таблице QTableWidget
1
Ser5+
Сортировка по одному полю понятно tb.sortItems(11, QtCore.Qt.DescendingOrder)
Но как сделать по нескольким?
Некоторые сортировки у меня по запросу с базы постгри.Но со временем появились динамические колонки,которые на лету создаются не из базы.
И я хотел сделать одну сортировку из базы по одним полям и сделать еще дополнительную к нему сортировку.
То есть например в базе таблица с колонками 1,2,3
А в QTableWidget 4 колонки (1,2,3,4) первые три из базы берутся,а 4 динамическая создается при открытии программы с нужными значениями.
Допустим мне нужно сделать сортировку по 2 и 4 полям.
Логично в запросе будет стоять сортировка по 2 полю и вторую сортировку по table.sortItems(4, QtCore.Qt.DescendingOrder) верно? А если нужно сортировать такие 1,4,2 то уже не получится таким способом. Вот и подумал может есть способ сортировки по нескольким столбцам в QTableWidget?
py.user.next
Ser5+
Вот и подумал может есть способ сортировки по нескольким столбцам в QTableWidget?
Скорее всего, тебе нужно на простой таблице (на прототипе) получить нужный алгоритм, а потом реализовать его же в своей программе на PyQt.
Простую таблицу можно сделать в питоне в виде списка списков, заполнить её примерными данными, посортировать её по разным полям. И вот когда оно получится так, как надо, у тебя будет алгоритм в результате. И вот этот алгоритм можно сделать уже в программе в виде функции. В функцию подаётся таблица и набор полей для сортировки, а потом функция возвращает отсортированную таблицу по этим полям. Внутри функции - твой алгоритм реализованный.

Ser5+
Вот и подумал может есть способ сортировки по нескольким столбцам в QTableWidget?
Нет. Там только сортировка рядов по одной колонке. Возможно, там можно перегнать в базу данных, отсортировать в ней средствами этой базы данных, получить отсортированные данные и вставить обратно в таблицу.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB