#ifndef PAGECONTROL_H #define PAGECONTROL_H #include <QWidget> #include <QTableWidget> #include <QHBoxLayout> #include <QPushButton> #include <QVector> class PagedTableWidget : public QWidget { Q_OBJECT public: explicit PagedTableWidget(QWidget *parent = nullptr,QHBoxLayout *PageLayout=NULL); ~PagedTableWidget(); void setData(const QList<QList<QString>> &data, int rowsPerPage = 10,QTableWidget *table=NULL); void setCurrentPage(int page); signals: void pageChanged(int page); private slots: void onPageButtonClicked(); void onPageSwitching(bool Switch); private: QTableWidget *tableWidget; QHBoxLayout *pageLayout; QList<QPushButton *> pageButtons; QList<QList<QString>> allData; int rowsPerPage; int currentPage; void updateTable(); void createPageButtons(); int calculateTotalPages(); }; #endif // PAGECONTROL_H