FemaLocalSoftware/paginationbar.h
lopata29435_NSK 3af06d02ec finish
2025-01-08 05:13:48 +07:00

47 lines
1.4 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef PAGINATIONBAR_H
#define PAGINATIONBAR_H
#include <QHBoxLayout>
#include <QLineEdit>
#include <QPushButton>
#include <QWidget>
class PaginationBar : public QWidget
{
Q_OBJECT
public:
explicit PaginationBar(int totalPages, QWidget *parent = nullptr);
public:
void setTotalPages(int newTotalPages);
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