#ifndef STICKYTABLEVIEW_FIXED_H #define STICKYTABLEVIEW_FIXED_H #include #include #include #include #include class StickyTableViewFixed : public QTableView { Q_OBJECT public: explicit StickyTableViewFixed(QWidget *parent = nullptr); // Установить количество липких столбцов 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; QModelIndex indexAt(const QPoint &point) const override; QRect visualRect(const QModelIndex &index) const override; private: void updateStickyColumnGeometry(); void paintStickyColumns(QPainter *painter); QRect stickyColumnRect(int row, int col) const; int m_stickyColumns; int m_stickyColumnWidth; }; #endif // STICKYTABLEVIEW_FIXED_H