Комментарии 7
На просторах интернета найден следующий раритет- HierarchicalHeaderView. Вполне себе под Qt 5.15.9 работает, но без сортировок, видимо какие-то сигналы не перехватываются ...
Можно как-то обойтись без перекомпиляции исходников Qt аналогично этому ?
Не получается пока никак без перекомпиляции. Мы наследуемся напрямую от QAbstractItemView (это для таблиц). У QAbstractItemView определен экспорт Q_GUI_EXPORT.
У QAbstractItemView есть приватный спутник QAbstractItemViewPrivate, в котором реализована часть функционала. У QAbstractItemViewPrivate экспорт отключен (см Q_AUTOTEST_EXPORT). Короче все методы QAbstractItemViewPrivate наружу в библиотеке не торчат, но QAbstractItemView их дергает. В общем штатно если вы унаследуетесь от QAbstractItemView вы не собирёте проект иначе как в составе исходников Qt. При линковке не найдены будут методы QAbstractItemViewPrivate .
Во всяком случае у меня никак не получается.
Спс, посмотрим, такого не находил
Есть ещё давно написанные компоненты QAdvancedItemViews. Из коробки там нет многострочных заголовков, но я ним прикручивал его. Может что дельного найдете там. Мне там нравится как фильтры реализованы, а так же возможность закрепления строк вверху.
Спс, интересно, там наследование прямо от QWidget
class QAIVLIBSHARED_EXPORT QAdvancedTableView : public QWidget
Такой вариант в голову ещё не приходил. И это хорошая идея.
Проверили и разобрались. Оказалось, что QAbstractScrollArea свой реализовывать не надо, т.к. он и его приватный друг экспортируемый.
Таким образом для свободного (удобного) распространения QpTableView достаточно тащить с собой только свой QpAbstractItemView и более ничего не надо.
Пишем свой QTableView (продолжение: кастомные стили)