123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283 |
- #include "PagingWidget.h"
- #include "ui_PagingWidget.h"
- #include <QDebug>
- #include "CAppInfo.h"
- PagingWidget::PagingWidget(QWidget *parent) :
- QWidget(parent),
- ui(new Ui::PagingWidget)
- {
- ui->setupUi(this);
- initPages(7);
- }
- PagingWidget::~PagingWidget()
- {
- delete ui;
- }
- void PagingWidget::setUI(const int nX, const int nY)
- {
- setGeometry(nX, nY, g_appInfoPtr->m_fRate*350, g_appInfoPtr->m_fRate*30);
- ui->btn_previous->setGeometry(0, 0, g_appInfoPtr->m_fRate*30, g_appInfoPtr->m_fRate*30);
- for(int i = 0; i < m_nLimitPage; i++)
- {
- QPushButton* btn = QWidget::findChild<QPushButton*>(QString("btn_page%1").arg(i+1));
- if(btn)
- {
- btn->setGeometry(ui->btn_previous->x() + (ui->btn_previous->width() + g_appInfoPtr->m_fRate*10)*(i+ 1),
- ui->btn_previous->y(), ui->btn_previous->width(), ui->btn_previous->height());
- }
- }
- ui->btn_next->setGeometry(ui->btn_page7->x() + ui->btn_previous->width() + g_appInfoPtr->m_fRate*10,
- ui->btn_previous->y(), ui->btn_previous->width(), ui->btn_previous->height());
- }
- void PagingWidget::setMaxPageSize(int nMaxSize)
- {
- initPages(nMaxSize);
- }
- void PagingWidget::initPages(const int nMaxSize)
- {
- m_nMaxPageSize = nMaxSize;
- m_nCurrentPage = 1;
- initPageCtrl(1);
- /*
- m_nCurrentPage = 1;
- if(nMaxSize <= m_nLimitPage)
- {
- bool bSetNextGeometry = false;
- for(int i = 0; i < m_nLimitPage; i++)
- {
- QPushButton* btn = QWidget::findChild<QPushButton*>(QString("btn_page%1").arg(i+1));
- if(btn)
- {
- if(i < nMaxSize)
- {
- btn->setVisible(true);
- btn->setText(QString::number(i+1));
- }
- else
- {
- btn->setVisible(false);
- if(!bSetNextGeometry)
- {
- ui->btn_next->setGeometry(btn->x(), btn->y(),
- ui->btn_next->width(), ui->btn_next->height());
- bSetNextGeometry = true;
- }
- }
- }
- }
- }
- else
- {
- for(int i = 0; i < m_nLimitPage - 2; i++)
- {
- QPushButton* btn = QWidget::findChild<QPushButton*>(QString("btn_page%1").arg(i+1));
- if(btn)
- {
- btn->setVisible(true);
- btn->setText(QString::number(i+1));
- }
- }
- ui->btn_page6->setText(QString("..."));
- ui->btn_page7->setText(QString::number(nMaxSize));
- }*/
- }
- void PagingWidget::initPageCtrl(const int nCurPage)
- {
- ui->btn_next->setGeometry(ui->btn_page7->x() + ui->btn_previous->width() + g_appInfoPtr->m_fRate*10,
- ui->btn_previous->y(), ui->btn_previous->width(), ui->btn_previous->height());
- if(m_nMaxPageSize <= m_nLimitPage)
- {
- bool bSetNextGeometry = false;
- for(int i = 0; i < m_nLimitPage; i++)
- {
- QPushButton* btn = QWidget::findChild<QPushButton*>(QString("btn_page%1").arg(i+1));
- if(btn)
- {
- if(i < m_nMaxPageSize)
- {
- btn->setVisible(true);
- btn->setText(QString::number(i+1));
- }
- else
- {
- btn->setVisible(false);
- if(!bSetNextGeometry)
- {
- ui->btn_next->setGeometry(btn->x(), btn->y(),
- ui->btn_next->width(), ui->btn_next->height());
- bSetNextGeometry = true;
- }
- }
- }
- }
- }
- else if(m_nCurrentPage < 6)
- {
- for(int i = 0; i < m_nLimitPage - 2; i++)
- {
- QPushButton* btn = QWidget::findChild<QPushButton*>(QString("btn_page%1").arg(i+1));
- if(btn)
- {
- btn->setVisible(true);
- btn->setText(QString::number(i+1));
- }
- }
- ui->btn_page6->setVisible(true);
- ui->btn_page7->setVisible(true);
- ui->btn_page6->setText(QString("..."));
- ui->btn_page7->setText(QString::number(m_nMaxPageSize));
- }
- else if(m_nMaxPageSize - m_nCurrentPage > 3)
- {
- for(int i = 0; i < m_nLimitPage - 2; i++)
- {
- QPushButton* btn = QWidget::findChild<QPushButton*>(QString("btn_page%1").arg(i+1));
- if(btn)
- {
- btn->setVisible(true);
- btn->setText(QString::number(m_nCurrentPage - 4 + i+1));
- }
- }
- ui->btn_page6->setVisible(true);
- ui->btn_page7->setVisible(true);
- ui->btn_page6->setText(QString("..."));
- ui->btn_page7->setText(QString::number(m_nMaxPageSize));
- }
- else
- {
- for(int i = 0; i < m_nLimitPage; i++)
- {
- QPushButton* btn = QWidget::findChild<QPushButton*>(QString("btn_page%1").arg(i+1));
- if(btn)
- {
- btn->setVisible(true);
- btn->setText(QString::number(m_nMaxPageSize - 7 + i + 1));
- }
- }
- }
- for(int i = 0; i < m_nLimitPage; i++)
- {
- QPushButton* btn = QWidget::findChild<QPushButton*>(QString("btn_page%1").arg(i+1));
- if(btn)
- {
- if(btn->text() != "..." &&
- btn->text().toInt() == m_nCurrentPage)
- {
- btn->setStyleSheet(QString("QPushButton {\
- background:rgba(100, 153, 218,1);\
- font-size:%1px;\
- font-family:\"Microsoft YaHei\";\
- font-weight:600;\
- color: rgba(255, 255, 255, 1);\
- border-radius:%2px;}").arg((int)(g_appInfoPtr->m_fRate*12)).arg((int)(g_appInfoPtr->m_fRate*4))) ;
- }
- else
- {
- btn->setStyleSheet(QString("QPushButton {\
- background:rgba(255, 255, 255,1);\
- font-size:%1px;\
- font-family:\"Microsoft YaHei\";\
- font-weight:400;\
- color: rgba(75, 82, 96, 1);\
- border: %2px solid rgba(204, 211, 224, 1);\
- border-radius:%3px;}").arg((int)(g_appInfoPtr->m_fRate*12))
- .arg((int)(g_appInfoPtr->m_fRate)).arg((int)(g_appInfoPtr->m_fRate*4))) ;
- }
- }
- }
- ui->btn_previous->setStyleSheet(QString("QPushButton {\
- background:rgba(255, 255, 255,1);\
- font-size:%1px;\
- font-family:\"Microsoft YaHei\";\
- font-weight:400;\
- color: rgba(75, 82, 96, 1);\
- border: %2px solid rgba(204, 211, 224, 1);\
- border-radius:%3px;}").arg((int)(g_appInfoPtr->m_fRate*12)).arg((int)(g_appInfoPtr->m_fRate)).arg((int)(g_appInfoPtr->m_fRate*4))) ;
- ui->btn_next->setStyleSheet(QString("QPushButton {\
- background:rgba(255, 255, 255,1);\
- font-size:%1px;\
- font-family:\"Microsoft YaHei\";\
- font-weight:400;\
- color: rgba(75, 82, 96, 1);\
- border: %2px solid rgba(204, 211, 224, 1);\
- border-radius:%3px;}").arg((int)(g_appInfoPtr->m_fRate*12)).arg((int)(g_appInfoPtr->m_fRate)).arg((int)(g_appInfoPtr->m_fRate*4))) ;
- }
- void PagingWidget::setCurPage(const int nCurPage)
- {
- if(m_nCurrentPage != nCurPage)
- {
- m_nCurrentPage = nCurPage;
- initPageCtrl(m_nCurrentPage);
- qDebug()<<m_nCurrentPage;
- emit pageChanged(m_nCurrentPage);
- }
- }
- void PagingWidget::on_btn_previous_clicked()
- {
- if(m_nCurrentPage > 1)
- {
- setCurPage(m_nCurrentPage - 1);
- }
- }
- void PagingWidget::on_btn_page1_clicked()
- {
- setCurPage(ui->btn_page1->text().toInt());
- }
- void PagingWidget::on_btn_page2_clicked()
- {
- setCurPage(ui->btn_page2->text().toInt());
- }
- void PagingWidget::on_btn_page3_clicked()
- {
- setCurPage(ui->btn_page3->text().toInt());
- }
- void PagingWidget::on_btn_page4_clicked()
- {
- setCurPage(ui->btn_page4->text().toInt());
- }
- void PagingWidget::on_btn_page5_clicked()
- {
- setCurPage(ui->btn_page5->text().toInt());
- }
- void PagingWidget::on_btn_page6_clicked()
- {
- if(ui->btn_page6->text() == "...")
- {
- setCurPage(ui->btn_page5->text().toInt() + 1);
- }
- else
- {
- setCurPage(ui->btn_page6->text().toInt());
- }
- }
- void PagingWidget::on_btn_page7_clicked()
- {
- setCurPage(ui->btn_page7->text().toInt());
- }
- void PagingWidget::on_btn_next_clicked()
- {
- if(m_nCurrentPage < m_nMaxPageSize)
- {
- setCurPage(m_nCurrentPage + 1);
- }
- }
|