Files
GostGenerator/view/stickytableview_fixed.h
T

38 lines
1.1 KiB
C++

#ifndef STICKYTABLEVIEW_FIXED_H
#define STICKYTABLEVIEW_FIXED_H
#include <QTableView>
#include <QHeaderView>
#include <QScrollBar>
#include <QPainter>
#include <QApplication>
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