Какова стандартная практика сохранения ширины столбцов, сохраненной в QTableView, которая имеет определенные столбцы, скрытые/удаленные с помощью QSortFilterProxyModel (в произвольном порядке)? Обратите внимание, что я говорю о том, что они скрыты и скрыты в одном экземпляре.QSortFilterProxyModel breaks columnWidths
Я пробовал несколько способов (все уродливые), чтобы это произошло. Конечно, я делаю что-то неправильно.
Я посмотрел на QHeaderView :: saveState() и QHeaderView :: restoreState(), но если я что-то не хватает, это действительно полезно только для сохранения от завершения работы. Когда столбцы скрыты и невидимы в другом порядке, это прерывается.
QSortFilterProxyModel отлично работает с использованием filterAcceptsColumn(). Предостережение - это когда filterAcceptsColumn() возвращает true в столбце, который ранее возвращал false. Я запускаю invalidateFilter(), и он написан в QTableView. Тем не менее, QTableView использует какое-то значение по умолчанию (100, похоже,) для ширины столбца, а не ширину столбца до того, как QSortFilterProxyModel спрятал столбец.
Идеи?
Для такого управления, разумно ли использовать QHeaderView :: setSectionHidden() и уничтожить QSortFilterProxy вместе? Другое решение, которое я начинал, но считал слишком громоздким, - это сохранить некоторый тип контейнера «реальных индексов», который, по мнению QHeaderView, является индексом. –