#ifndef STICKYTABLEVIEW_H #define STICKYTABLEVIEW_H #include #include #include #include #include class StickyTableView : public QTableView { Q_OBJECT public: explicit StickyTableView(QWidget *parent = nullptr); // Установить количество липких столбцов (по умолчанию 1 - только обозначение) void setStickyColumns(int count); // Получить количество липких столбцов int stickyColumns() const { return m_stickyColumns; } protected: void paintEvent(QPaintEvent *event) override; void scrollContentsBy(int dx, int dy) override; void resizeEvent(QResizeEvent *event) override; private: void updateStickyColumnGeometry(); void paintStickyColumns(QPainter *painter); int m_stickyColumns; int m_stickyColumnWidth; bool m_isScrolling; }; #endif // STICKYTABLEVIEW_H