Как стать автором
Обновить

Комментарии 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

Такой вариант в голову ещё не приходил. И это хорошая идея.

Чтобы унаследовать QPTableView от QWidget (или QFrame), надо похоже ещё самому и QAbstractScrollArea реализовать. Задача не сложная, но оставим на будущее (а то так недолго и свой фреймворк написать)

Проверили и разобрались. Оказалось, что QAbstractScrollArea свой реализовывать не надо, т.к. он и его приватный друг экспортируемый.

Таким образом для свободного (удобного) распространения QpTableView достаточно тащить с собой только свой QpAbstractItemView и более ничего не надо.

Вот проект на github.com

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории