FemaLocalSoftware/paginationbar.h

43 lines
1.3 KiB
C
Raw Normal View History

2024-12-16 08:38:04 +00:00
#ifndef PAGINATIONBAR_H
#define PAGINATIONBAR_H
#include <QWidget>
#include <QPushButton>
#include <QLineEdit>
#include <QHBoxLayout>
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<QPushButton *> pageButtons; // Список кнопок страниц
void updateButtons(); // Обновление кнопок в зависимости от состояния
void addPageButton(int page); // Добавить кнопку страницы
void addEllipsisButton(); // Добавить кнопку с троеточием
};
#endif // PAGINATIONBAR_H