#ifndef PAGINATIONBAR_H #define PAGINATIONBAR_H #include #include #include #include class PaginationBar : public QWidget { Q_OBJECT public: explicit PaginationBar(int totalPages, QWidget *parent = nullptr); signals: void pageChanged(int page); private slots: void onPageButtonClicked(int page); void goToPreviousPage(); void goToNextPage(); void onEllipsisClicked(QPushButton *ellipsisButton); private: QLineEdit *activeLineEdit = nullptr; QPushButton *previousEllipsisButton = nullptr; private: int totalPages; // Общее количество страниц int currentPage; // Текущая страница QPushButton *leftArrow; // Кнопка влево QPushButton *rightArrow; // Кнопка вправо QHBoxLayout *layout; // Макет для размещения кнопок QList pageButtons; // Список кнопок страниц void updateButtons(); // Обновление кнопок в зависимости от состояния void addPageButton(int page); // Добавить кнопку страницы void addEllipsisButton(); // Добавить кнопку с троеточием }; #endif // PAGINATIONBAR_H