FemaLocalSoftware/paginationbar.h

47 lines
1.4 KiB
C
Raw Normal View History

2024-12-16 08:38:04 +00:00
#ifndef PAGINATIONBAR_H
#define PAGINATIONBAR_H
#include <QHBoxLayout>
2025-01-07 22:13:48 +00:00
#include <QLineEdit>
#include <QPushButton>
#include <QWidget>
2024-12-16 08:38:04 +00:00
2025-01-07 22:13:48 +00:00
class PaginationBar : public QWidget
{
2024-12-16 08:38:04 +00:00
Q_OBJECT
public:
explicit PaginationBar(int totalPages, QWidget *parent = nullptr);
2025-01-07 22:13:48 +00:00
public:
void setTotalPages(int newTotalPages);
2024-12-16 08:38:04 +00:00
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:
2025-01-07 22:13:48 +00:00
int totalPages; // Общее количество страниц
int currentPage; // Текущая страница
2024-12-16 08:38:04 +00:00
2025-01-07 22:13:48 +00:00
QPushButton *leftArrow; // Кнопка влево
QPushButton *rightArrow; // Кнопка вправо
QHBoxLayout *layout; // Макет для размещения кнопок
2024-12-16 08:38:04 +00:00
QList<QPushButton *> pageButtons; // Список кнопок страниц
2025-01-07 22:13:48 +00:00
void updateButtons(); // Обновление кнопок в зависимости от состояния
void addPageButton(int page); // Добавить кнопку страницы
void addEllipsisButton(); // Добавить кнопку с троеточием
2024-12-16 08:38:04 +00:00
};
#endif // PAGINATIONBAR_H