/
friendlyperch
/
QGrid
Обзор
Документация
Войти
/
friendlyperch
/
QGrid
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
dev-ver1
src/FilterHeaderView.h
66 строк
2 KB
okuntsev
column sorting
16 янв 2026, 17:41
16 янв 2026, 17:41
d1883e8
Код
Авторство
О чём код?
#ifndef FILTERHEADERVIEW_H #define FILTERHEADERVIEW_H #include <QHeaderView> #include <QMap> #include <QVector> class GridColumn; class Group; class QWidget; class FilterHeaderView : public QHeaderView { Q_OBJECT public: FilterHeaderView(Qt::Orientation orientation, QWidget *parent = nullptr); ~FilterHeaderView(); void setColumns(const QVector<GridColumn *> &columns); void setCheckboxColumnOffset(int offset); void setSearchBarShow(bool show); bool getSearchBarShow() const { return mSearchBarShow; } Group getFilters() const; void updateFilterWidgetsGeometry(); QSize sizeHint() const override; signals: void filtersChanged(const Group &filters); void columnVisibilityChanged(); protected: void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override; void resizeEvent(QResizeEvent *event) override; void showEvent(QShowEvent *event) override; void contextMenuEvent(QContextMenuEvent *event) override; void mousePressEvent(QMouseEvent *event) override; private slots: void onSectionResized(int logicalIndex, int oldSize, int newSize); void onFilterWidgetDataChanged(); private: void setupFilterWidgets(); void clearFilterWidgets(); void updateFilterWidgetPosition(int columnIndex); QRect getFilterWidgetRect(int columnIndex) const; QRect getHeaderRect(int logicalIndex) const; void updateFilters(); QVector<GridColumn *> mColumns; QMap<int, QWidget *> filterWidgets; // column index -> filter widget Group *mFilters = nullptr; bool mSearchBarShow = false; int mFilterRowHeight = 20; int mCheckboxColumnOffset = 0; }; #endif // FILTERHEADERVIEW_H