Files
GostGenerator/view/stickytableview.h
T

36 lines
991 B
C++

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