diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index c716d8f..145840b 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -25,6 +25,7 @@ SOURCES += \ DataProcessingBLL.cpp \ + PageControl.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -64,6 +65,7 @@ HEADERS += \ CheckBoxTableHeader.h \ DataProcessingBLL.h \ + PageControl.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index c716d8f..145840b 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -25,6 +25,7 @@ SOURCES += \ DataProcessingBLL.cpp \ + PageControl.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -64,6 +65,7 @@ HEADERS += \ CheckBoxTableHeader.h \ DataProcessingBLL.h \ + PageControl.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/PageControl.h b/softwareDirectory/AutoVerScheme/PageControl.h new file mode 100644 index 0000000..74ed1ce --- /dev/null +++ b/softwareDirectory/AutoVerScheme/PageControl.h @@ -0,0 +1,40 @@ +#ifndef PAGECONTROL_H +#define PAGECONTROL_H + + +#include +#include +#include +#include +#include + +class PagedTableWidget : public QWidget { + Q_OBJECT + +public: + explicit PagedTableWidget(QWidget *parent = nullptr,QHBoxLayout *PageLayout=NULL); + ~PagedTableWidget(); + + void setData(const QList> &data, int rowsPerPage = 10,QTableWidget *table=NULL); + void setCurrentPage(int page); + +signals: + void pageChanged(int page); + +private slots: + void onPageButtonClicked(); + void onPageSwitching(bool Switch); + +private: + QTableWidget *tableWidget; + QHBoxLayout *pageLayout; + QList pageButtons; + QList> allData; + int rowsPerPage; + int currentPage; + + void updateTable(); + void createPageButtons(); + int calculateTotalPages(); +}; +#endif // PAGECONTROL_H diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index c716d8f..145840b 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -25,6 +25,7 @@ SOURCES += \ DataProcessingBLL.cpp \ + PageControl.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -64,6 +65,7 @@ HEADERS += \ CheckBoxTableHeader.h \ DataProcessingBLL.h \ + PageControl.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/PageControl.h b/softwareDirectory/AutoVerScheme/PageControl.h new file mode 100644 index 0000000..74ed1ce --- /dev/null +++ b/softwareDirectory/AutoVerScheme/PageControl.h @@ -0,0 +1,40 @@ +#ifndef PAGECONTROL_H +#define PAGECONTROL_H + + +#include +#include +#include +#include +#include + +class PagedTableWidget : public QWidget { + Q_OBJECT + +public: + explicit PagedTableWidget(QWidget *parent = nullptr,QHBoxLayout *PageLayout=NULL); + ~PagedTableWidget(); + + void setData(const QList> &data, int rowsPerPage = 10,QTableWidget *table=NULL); + void setCurrentPage(int page); + +signals: + void pageChanged(int page); + +private slots: + void onPageButtonClicked(); + void onPageSwitching(bool Switch); + +private: + QTableWidget *tableWidget; + QHBoxLayout *pageLayout; + QList pageButtons; + QList> allData; + int rowsPerPage; + int currentPage; + + void updateTable(); + void createPageButtons(); + int calculateTotalPages(); +}; +#endif // PAGECONTROL_H diff --git a/softwareDirectory/AutoVerScheme/checkwindow.ui b/softwareDirectory/AutoVerScheme/checkwindow.ui index 90a3172..df9ff67 100644 --- a/softwareDirectory/AutoVerScheme/checkwindow.ui +++ b/softwareDirectory/AutoVerScheme/checkwindow.ui @@ -266,7 +266,7 @@ - 0 + 2 diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index c716d8f..145840b 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -25,6 +25,7 @@ SOURCES += \ DataProcessingBLL.cpp \ + PageControl.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -64,6 +65,7 @@ HEADERS += \ CheckBoxTableHeader.h \ DataProcessingBLL.h \ + PageControl.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/PageControl.h b/softwareDirectory/AutoVerScheme/PageControl.h new file mode 100644 index 0000000..74ed1ce --- /dev/null +++ b/softwareDirectory/AutoVerScheme/PageControl.h @@ -0,0 +1,40 @@ +#ifndef PAGECONTROL_H +#define PAGECONTROL_H + + +#include +#include +#include +#include +#include + +class PagedTableWidget : public QWidget { + Q_OBJECT + +public: + explicit PagedTableWidget(QWidget *parent = nullptr,QHBoxLayout *PageLayout=NULL); + ~PagedTableWidget(); + + void setData(const QList> &data, int rowsPerPage = 10,QTableWidget *table=NULL); + void setCurrentPage(int page); + +signals: + void pageChanged(int page); + +private slots: + void onPageButtonClicked(); + void onPageSwitching(bool Switch); + +private: + QTableWidget *tableWidget; + QHBoxLayout *pageLayout; + QList pageButtons; + QList> allData; + int rowsPerPage; + int currentPage; + + void updateTable(); + void createPageButtons(); + int calculateTotalPages(); +}; +#endif // PAGECONTROL_H diff --git a/softwareDirectory/AutoVerScheme/checkwindow.ui b/softwareDirectory/AutoVerScheme/checkwindow.ui index 90a3172..df9ff67 100644 --- a/softwareDirectory/AutoVerScheme/checkwindow.ui +++ b/softwareDirectory/AutoVerScheme/checkwindow.ui @@ -266,7 +266,7 @@ - 0 + 2 diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index 7dc4c7c..5791c44 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -6,6 +6,7 @@ //部门任务 //#include "depar_task_server.h" #include "basecommonapi.h" +#include "PageControl.h" @@ -72,7 +73,7 @@ } void Depar_Task::Load() { - + QList> PageData; //添加Combox数据 ui->name->clear(); ui->mode->clear(); @@ -94,7 +95,8 @@ QString State; for (const Dept& dept : data) { if(dept.measure_status=="3" || dept.measure_status=="4"){ - rowCount = ui->tableWidget->rowCount(); + QList TempData; + rowCount = ui->tableWidget->rowCount(); ui->tableWidget->insertRow(rowCount); ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); @@ -111,11 +113,31 @@ else State="否"; ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 - //QDebug - row++; + //添加 PageData数据 + TempData.append(QString::number(row+1)); + TempData.append(dept.sample_name); + TempData.append(dept.sample_model); + TempData.append(dept.help_instruction); + TempData.append(dept.manufacture_no); + TempData.append(dept.manufacturer); + TempData.append(dept.customer_name); + TempData.append(dept.FULL_NAME); + TempData.append(dept.require_over_time.toString()); + TempData.append(State); + TempData.append(dept.measure_status); + PageData.append(TempData); + row++; } } + //设置分页控件 + // 创建分页表格控件 + //设置分页控件 + // 创建分页表格控件 + + PagedTableWidget *pagedTable = new PagedTableWidget(this, ui->HBoxPageLayout); + //data转换位QList> + pagedTable->setData(PageData, 20,ui->tableWidget); // 每页20行 } void Depar_Task::on_SelectButton_clicked() diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index c716d8f..145840b 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -25,6 +25,7 @@ SOURCES += \ DataProcessingBLL.cpp \ + PageControl.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -64,6 +65,7 @@ HEADERS += \ CheckBoxTableHeader.h \ DataProcessingBLL.h \ + PageControl.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/PageControl.h b/softwareDirectory/AutoVerScheme/PageControl.h new file mode 100644 index 0000000..74ed1ce --- /dev/null +++ b/softwareDirectory/AutoVerScheme/PageControl.h @@ -0,0 +1,40 @@ +#ifndef PAGECONTROL_H +#define PAGECONTROL_H + + +#include +#include +#include +#include +#include + +class PagedTableWidget : public QWidget { + Q_OBJECT + +public: + explicit PagedTableWidget(QWidget *parent = nullptr,QHBoxLayout *PageLayout=NULL); + ~PagedTableWidget(); + + void setData(const QList> &data, int rowsPerPage = 10,QTableWidget *table=NULL); + void setCurrentPage(int page); + +signals: + void pageChanged(int page); + +private slots: + void onPageButtonClicked(); + void onPageSwitching(bool Switch); + +private: + QTableWidget *tableWidget; + QHBoxLayout *pageLayout; + QList pageButtons; + QList> allData; + int rowsPerPage; + int currentPage; + + void updateTable(); + void createPageButtons(); + int calculateTotalPages(); +}; +#endif // PAGECONTROL_H diff --git a/softwareDirectory/AutoVerScheme/checkwindow.ui b/softwareDirectory/AutoVerScheme/checkwindow.ui index 90a3172..df9ff67 100644 --- a/softwareDirectory/AutoVerScheme/checkwindow.ui +++ b/softwareDirectory/AutoVerScheme/checkwindow.ui @@ -266,7 +266,7 @@ - 0 + 2 diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index 7dc4c7c..5791c44 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -6,6 +6,7 @@ //部门任务 //#include "depar_task_server.h" #include "basecommonapi.h" +#include "PageControl.h" @@ -72,7 +73,7 @@ } void Depar_Task::Load() { - + QList> PageData; //添加Combox数据 ui->name->clear(); ui->mode->clear(); @@ -94,7 +95,8 @@ QString State; for (const Dept& dept : data) { if(dept.measure_status=="3" || dept.measure_status=="4"){ - rowCount = ui->tableWidget->rowCount(); + QList TempData; + rowCount = ui->tableWidget->rowCount(); ui->tableWidget->insertRow(rowCount); ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); @@ -111,11 +113,31 @@ else State="否"; ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 - //QDebug - row++; + //添加 PageData数据 + TempData.append(QString::number(row+1)); + TempData.append(dept.sample_name); + TempData.append(dept.sample_model); + TempData.append(dept.help_instruction); + TempData.append(dept.manufacture_no); + TempData.append(dept.manufacturer); + TempData.append(dept.customer_name); + TempData.append(dept.FULL_NAME); + TempData.append(dept.require_over_time.toString()); + TempData.append(State); + TempData.append(dept.measure_status); + PageData.append(TempData); + row++; } } + //设置分页控件 + // 创建分页表格控件 + //设置分页控件 + // 创建分页表格控件 + + PagedTableWidget *pagedTable = new PagedTableWidget(this, ui->HBoxPageLayout); + //data转换位QList> + pagedTable->setData(PageData, 20,ui->tableWidget); // 每页20行 } void Depar_Task::on_SelectButton_clicked() diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index 7f99c96..162b3f0 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -236,6 +236,24 @@ + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index c716d8f..145840b 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -25,6 +25,7 @@ SOURCES += \ DataProcessingBLL.cpp \ + PageControl.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -64,6 +65,7 @@ HEADERS += \ CheckBoxTableHeader.h \ DataProcessingBLL.h \ + PageControl.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/PageControl.h b/softwareDirectory/AutoVerScheme/PageControl.h new file mode 100644 index 0000000..74ed1ce --- /dev/null +++ b/softwareDirectory/AutoVerScheme/PageControl.h @@ -0,0 +1,40 @@ +#ifndef PAGECONTROL_H +#define PAGECONTROL_H + + +#include +#include +#include +#include +#include + +class PagedTableWidget : public QWidget { + Q_OBJECT + +public: + explicit PagedTableWidget(QWidget *parent = nullptr,QHBoxLayout *PageLayout=NULL); + ~PagedTableWidget(); + + void setData(const QList> &data, int rowsPerPage = 10,QTableWidget *table=NULL); + void setCurrentPage(int page); + +signals: + void pageChanged(int page); + +private slots: + void onPageButtonClicked(); + void onPageSwitching(bool Switch); + +private: + QTableWidget *tableWidget; + QHBoxLayout *pageLayout; + QList pageButtons; + QList> allData; + int rowsPerPage; + int currentPage; + + void updateTable(); + void createPageButtons(); + int calculateTotalPages(); +}; +#endif // PAGECONTROL_H diff --git a/softwareDirectory/AutoVerScheme/checkwindow.ui b/softwareDirectory/AutoVerScheme/checkwindow.ui index 90a3172..df9ff67 100644 --- a/softwareDirectory/AutoVerScheme/checkwindow.ui +++ b/softwareDirectory/AutoVerScheme/checkwindow.ui @@ -266,7 +266,7 @@ - 0 + 2 diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index 7dc4c7c..5791c44 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -6,6 +6,7 @@ //部门任务 //#include "depar_task_server.h" #include "basecommonapi.h" +#include "PageControl.h" @@ -72,7 +73,7 @@ } void Depar_Task::Load() { - + QList> PageData; //添加Combox数据 ui->name->clear(); ui->mode->clear(); @@ -94,7 +95,8 @@ QString State; for (const Dept& dept : data) { if(dept.measure_status=="3" || dept.measure_status=="4"){ - rowCount = ui->tableWidget->rowCount(); + QList TempData; + rowCount = ui->tableWidget->rowCount(); ui->tableWidget->insertRow(rowCount); ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); @@ -111,11 +113,31 @@ else State="否"; ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 - //QDebug - row++; + //添加 PageData数据 + TempData.append(QString::number(row+1)); + TempData.append(dept.sample_name); + TempData.append(dept.sample_model); + TempData.append(dept.help_instruction); + TempData.append(dept.manufacture_no); + TempData.append(dept.manufacturer); + TempData.append(dept.customer_name); + TempData.append(dept.FULL_NAME); + TempData.append(dept.require_over_time.toString()); + TempData.append(State); + TempData.append(dept.measure_status); + PageData.append(TempData); + row++; } } + //设置分页控件 + // 创建分页表格控件 + //设置分页控件 + // 创建分页表格控件 + + PagedTableWidget *pagedTable = new PagedTableWidget(this, ui->HBoxPageLayout); + //data转换位QList> + pagedTable->setData(PageData, 20,ui->tableWidget); // 每页20行 } void Depar_Task::on_SelectButton_clicked() diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index 7f99c96..162b3f0 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -236,6 +236,24 @@ + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + diff --git a/softwareDirectory/AutoVerScheme/my_task.cpp b/softwareDirectory/AutoVerScheme/my_task.cpp index fe0b116..1735575 100644 --- a/softwareDirectory/AutoVerScheme/my_task.cpp +++ b/softwareDirectory/AutoVerScheme/my_task.cpp @@ -2,6 +2,7 @@ #include "ui_my_task.h" #include "QMessageBox" #include "basecommonapi.h" +#include "PageControl.h" My_Task::My_Task(QWidget *parent) : InfoBase(parent), @@ -61,6 +62,7 @@ } void My_Task::Load() { + QList> PageData; //先设置为行为0 ui->tableWidget->setRowCount(0); //添加comboBox @@ -89,6 +91,8 @@ QString State; for (const MyTask& myTask : data) { if(myTask.measure_status=="3" || myTask.measure_status=="4"){ + QList TempData; + rowCount = ui->tableWidget->rowCount(); ui->tableWidget->insertRow(rowCount); ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); @@ -117,9 +121,39 @@ //渲染下拉框 SetHomePaheCombox(myTask); //QDebug - row++; + + //添加 PageData数据 + TempData.append(QString::number(row+1)); + TempData.append(myTask.sample_name); + TempData.append(myTask.sample_model); + TempData.append(myTask.help_instruction); + TempData.append(myTask.manufacture_no); + TempData.append(myTask.manufacturer); + TempData.append(myTask.customer_name); + TempData.append(myTask.FULL_NAME); + TempData.append(myTask.require_over_time.toString()); + TempData.append(State); + TempData.append(myTask.measure_status); + PageData.append(TempData); + row++; } + + + } + //设置分页控件 + // 创建分页表格控件 + + PagedTableWidget *pagedTable = new PagedTableWidget(this, ui->HBoxPageLayout); + //data转换位QList> + pagedTable->setData(PageData, 20,ui->tableWidget); // 每页10行 + //ui->HBoxPageLayout->addWidget(pagedTable); + //setLayout(ui->HBoxPageLayout); + // 连接信号以处理页码变化 + /* connect(pagedTable, &PagedTableWidget::pageChanged, this, [=](int page) { + // 在这里处理页码变化事件,比如更新UI中的其他部分 + qDebug() << "Page changed to:" << page; + });*/ } void My_Task::SetHomePaheCombox(MyTask entity) { @@ -233,3 +267,25 @@ } } +/* +void My_Task::PageLoad() +{ + + + //每页显示的数量 + int rowsPerPage=10; + //获取数据总数量 + int totalPages = (data.count() + rowsPerPage - 1) / rowsPerPage; + for (int i = 0; i < totalPages; ++i) { + QPushButton *button = new QPushButton(QString::number(i + 1), this); + button->setCheckable(true); + connect(button, &QPushButton::clicked, this, [this, i] { onPageChanged(i); }); + pageButtons[i] = button; + pageLayout->addWidget(button); + } +} +void My_Task::onPageChanged(int pageIndex) { + currentPage = pageIndex; + updateTable(pageIndex); +} */ + diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index c716d8f..145840b 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -25,6 +25,7 @@ SOURCES += \ DataProcessingBLL.cpp \ + PageControl.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -64,6 +65,7 @@ HEADERS += \ CheckBoxTableHeader.h \ DataProcessingBLL.h \ + PageControl.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/PageControl.h b/softwareDirectory/AutoVerScheme/PageControl.h new file mode 100644 index 0000000..74ed1ce --- /dev/null +++ b/softwareDirectory/AutoVerScheme/PageControl.h @@ -0,0 +1,40 @@ +#ifndef PAGECONTROL_H +#define PAGECONTROL_H + + +#include +#include +#include +#include +#include + +class PagedTableWidget : public QWidget { + Q_OBJECT + +public: + explicit PagedTableWidget(QWidget *parent = nullptr,QHBoxLayout *PageLayout=NULL); + ~PagedTableWidget(); + + void setData(const QList> &data, int rowsPerPage = 10,QTableWidget *table=NULL); + void setCurrentPage(int page); + +signals: + void pageChanged(int page); + +private slots: + void onPageButtonClicked(); + void onPageSwitching(bool Switch); + +private: + QTableWidget *tableWidget; + QHBoxLayout *pageLayout; + QList pageButtons; + QList> allData; + int rowsPerPage; + int currentPage; + + void updateTable(); + void createPageButtons(); + int calculateTotalPages(); +}; +#endif // PAGECONTROL_H diff --git a/softwareDirectory/AutoVerScheme/checkwindow.ui b/softwareDirectory/AutoVerScheme/checkwindow.ui index 90a3172..df9ff67 100644 --- a/softwareDirectory/AutoVerScheme/checkwindow.ui +++ b/softwareDirectory/AutoVerScheme/checkwindow.ui @@ -266,7 +266,7 @@ - 0 + 2 diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index 7dc4c7c..5791c44 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -6,6 +6,7 @@ //部门任务 //#include "depar_task_server.h" #include "basecommonapi.h" +#include "PageControl.h" @@ -72,7 +73,7 @@ } void Depar_Task::Load() { - + QList> PageData; //添加Combox数据 ui->name->clear(); ui->mode->clear(); @@ -94,7 +95,8 @@ QString State; for (const Dept& dept : data) { if(dept.measure_status=="3" || dept.measure_status=="4"){ - rowCount = ui->tableWidget->rowCount(); + QList TempData; + rowCount = ui->tableWidget->rowCount(); ui->tableWidget->insertRow(rowCount); ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); @@ -111,11 +113,31 @@ else State="否"; ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 - //QDebug - row++; + //添加 PageData数据 + TempData.append(QString::number(row+1)); + TempData.append(dept.sample_name); + TempData.append(dept.sample_model); + TempData.append(dept.help_instruction); + TempData.append(dept.manufacture_no); + TempData.append(dept.manufacturer); + TempData.append(dept.customer_name); + TempData.append(dept.FULL_NAME); + TempData.append(dept.require_over_time.toString()); + TempData.append(State); + TempData.append(dept.measure_status); + PageData.append(TempData); + row++; } } + //设置分页控件 + // 创建分页表格控件 + //设置分页控件 + // 创建分页表格控件 + + PagedTableWidget *pagedTable = new PagedTableWidget(this, ui->HBoxPageLayout); + //data转换位QList> + pagedTable->setData(PageData, 20,ui->tableWidget); // 每页20行 } void Depar_Task::on_SelectButton_clicked() diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index 7f99c96..162b3f0 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -236,6 +236,24 @@ + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + diff --git a/softwareDirectory/AutoVerScheme/my_task.cpp b/softwareDirectory/AutoVerScheme/my_task.cpp index fe0b116..1735575 100644 --- a/softwareDirectory/AutoVerScheme/my_task.cpp +++ b/softwareDirectory/AutoVerScheme/my_task.cpp @@ -2,6 +2,7 @@ #include "ui_my_task.h" #include "QMessageBox" #include "basecommonapi.h" +#include "PageControl.h" My_Task::My_Task(QWidget *parent) : InfoBase(parent), @@ -61,6 +62,7 @@ } void My_Task::Load() { + QList> PageData; //先设置为行为0 ui->tableWidget->setRowCount(0); //添加comboBox @@ -89,6 +91,8 @@ QString State; for (const MyTask& myTask : data) { if(myTask.measure_status=="3" || myTask.measure_status=="4"){ + QList TempData; + rowCount = ui->tableWidget->rowCount(); ui->tableWidget->insertRow(rowCount); ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); @@ -117,9 +121,39 @@ //渲染下拉框 SetHomePaheCombox(myTask); //QDebug - row++; + + //添加 PageData数据 + TempData.append(QString::number(row+1)); + TempData.append(myTask.sample_name); + TempData.append(myTask.sample_model); + TempData.append(myTask.help_instruction); + TempData.append(myTask.manufacture_no); + TempData.append(myTask.manufacturer); + TempData.append(myTask.customer_name); + TempData.append(myTask.FULL_NAME); + TempData.append(myTask.require_over_time.toString()); + TempData.append(State); + TempData.append(myTask.measure_status); + PageData.append(TempData); + row++; } + + + } + //设置分页控件 + // 创建分页表格控件 + + PagedTableWidget *pagedTable = new PagedTableWidget(this, ui->HBoxPageLayout); + //data转换位QList> + pagedTable->setData(PageData, 20,ui->tableWidget); // 每页10行 + //ui->HBoxPageLayout->addWidget(pagedTable); + //setLayout(ui->HBoxPageLayout); + // 连接信号以处理页码变化 + /* connect(pagedTable, &PagedTableWidget::pageChanged, this, [=](int page) { + // 在这里处理页码变化事件,比如更新UI中的其他部分 + qDebug() << "Page changed to:" << page; + });*/ } void My_Task::SetHomePaheCombox(MyTask entity) { @@ -233,3 +267,25 @@ } } +/* +void My_Task::PageLoad() +{ + + + //每页显示的数量 + int rowsPerPage=10; + //获取数据总数量 + int totalPages = (data.count() + rowsPerPage - 1) / rowsPerPage; + for (int i = 0; i < totalPages; ++i) { + QPushButton *button = new QPushButton(QString::number(i + 1), this); + button->setCheckable(true); + connect(button, &QPushButton::clicked, this, [this, i] { onPageChanged(i); }); + pageButtons[i] = button; + pageLayout->addWidget(button); + } +} +void My_Task::onPageChanged(int pageIndex) { + currentPage = pageIndex; + updateTable(pageIndex); +} */ + diff --git a/softwareDirectory/AutoVerScheme/my_task.h b/softwareDirectory/AutoVerScheme/my_task.h index d764c45..289e7f4 100644 --- a/softwareDirectory/AutoVerScheme/my_task.h +++ b/softwareDirectory/AutoVerScheme/my_task.h @@ -28,6 +28,7 @@ void on_SeachButton_clicked(); public: QList data; + private: Ui::My_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index c716d8f..145840b 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -25,6 +25,7 @@ SOURCES += \ DataProcessingBLL.cpp \ + PageControl.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -64,6 +65,7 @@ HEADERS += \ CheckBoxTableHeader.h \ DataProcessingBLL.h \ + PageControl.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/PageControl.h b/softwareDirectory/AutoVerScheme/PageControl.h new file mode 100644 index 0000000..74ed1ce --- /dev/null +++ b/softwareDirectory/AutoVerScheme/PageControl.h @@ -0,0 +1,40 @@ +#ifndef PAGECONTROL_H +#define PAGECONTROL_H + + +#include +#include +#include +#include +#include + +class PagedTableWidget : public QWidget { + Q_OBJECT + +public: + explicit PagedTableWidget(QWidget *parent = nullptr,QHBoxLayout *PageLayout=NULL); + ~PagedTableWidget(); + + void setData(const QList> &data, int rowsPerPage = 10,QTableWidget *table=NULL); + void setCurrentPage(int page); + +signals: + void pageChanged(int page); + +private slots: + void onPageButtonClicked(); + void onPageSwitching(bool Switch); + +private: + QTableWidget *tableWidget; + QHBoxLayout *pageLayout; + QList pageButtons; + QList> allData; + int rowsPerPage; + int currentPage; + + void updateTable(); + void createPageButtons(); + int calculateTotalPages(); +}; +#endif // PAGECONTROL_H diff --git a/softwareDirectory/AutoVerScheme/checkwindow.ui b/softwareDirectory/AutoVerScheme/checkwindow.ui index 90a3172..df9ff67 100644 --- a/softwareDirectory/AutoVerScheme/checkwindow.ui +++ b/softwareDirectory/AutoVerScheme/checkwindow.ui @@ -266,7 +266,7 @@ - 0 + 2 diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index 7dc4c7c..5791c44 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -6,6 +6,7 @@ //部门任务 //#include "depar_task_server.h" #include "basecommonapi.h" +#include "PageControl.h" @@ -72,7 +73,7 @@ } void Depar_Task::Load() { - + QList> PageData; //添加Combox数据 ui->name->clear(); ui->mode->clear(); @@ -94,7 +95,8 @@ QString State; for (const Dept& dept : data) { if(dept.measure_status=="3" || dept.measure_status=="4"){ - rowCount = ui->tableWidget->rowCount(); + QList TempData; + rowCount = ui->tableWidget->rowCount(); ui->tableWidget->insertRow(rowCount); ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); @@ -111,11 +113,31 @@ else State="否"; ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 - //QDebug - row++; + //添加 PageData数据 + TempData.append(QString::number(row+1)); + TempData.append(dept.sample_name); + TempData.append(dept.sample_model); + TempData.append(dept.help_instruction); + TempData.append(dept.manufacture_no); + TempData.append(dept.manufacturer); + TempData.append(dept.customer_name); + TempData.append(dept.FULL_NAME); + TempData.append(dept.require_over_time.toString()); + TempData.append(State); + TempData.append(dept.measure_status); + PageData.append(TempData); + row++; } } + //设置分页控件 + // 创建分页表格控件 + //设置分页控件 + // 创建分页表格控件 + + PagedTableWidget *pagedTable = new PagedTableWidget(this, ui->HBoxPageLayout); + //data转换位QList> + pagedTable->setData(PageData, 20,ui->tableWidget); // 每页20行 } void Depar_Task::on_SelectButton_clicked() diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index 7f99c96..162b3f0 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -236,6 +236,24 @@ + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + diff --git a/softwareDirectory/AutoVerScheme/my_task.cpp b/softwareDirectory/AutoVerScheme/my_task.cpp index fe0b116..1735575 100644 --- a/softwareDirectory/AutoVerScheme/my_task.cpp +++ b/softwareDirectory/AutoVerScheme/my_task.cpp @@ -2,6 +2,7 @@ #include "ui_my_task.h" #include "QMessageBox" #include "basecommonapi.h" +#include "PageControl.h" My_Task::My_Task(QWidget *parent) : InfoBase(parent), @@ -61,6 +62,7 @@ } void My_Task::Load() { + QList> PageData; //先设置为行为0 ui->tableWidget->setRowCount(0); //添加comboBox @@ -89,6 +91,8 @@ QString State; for (const MyTask& myTask : data) { if(myTask.measure_status=="3" || myTask.measure_status=="4"){ + QList TempData; + rowCount = ui->tableWidget->rowCount(); ui->tableWidget->insertRow(rowCount); ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); @@ -117,9 +121,39 @@ //渲染下拉框 SetHomePaheCombox(myTask); //QDebug - row++; + + //添加 PageData数据 + TempData.append(QString::number(row+1)); + TempData.append(myTask.sample_name); + TempData.append(myTask.sample_model); + TempData.append(myTask.help_instruction); + TempData.append(myTask.manufacture_no); + TempData.append(myTask.manufacturer); + TempData.append(myTask.customer_name); + TempData.append(myTask.FULL_NAME); + TempData.append(myTask.require_over_time.toString()); + TempData.append(State); + TempData.append(myTask.measure_status); + PageData.append(TempData); + row++; } + + + } + //设置分页控件 + // 创建分页表格控件 + + PagedTableWidget *pagedTable = new PagedTableWidget(this, ui->HBoxPageLayout); + //data转换位QList> + pagedTable->setData(PageData, 20,ui->tableWidget); // 每页10行 + //ui->HBoxPageLayout->addWidget(pagedTable); + //setLayout(ui->HBoxPageLayout); + // 连接信号以处理页码变化 + /* connect(pagedTable, &PagedTableWidget::pageChanged, this, [=](int page) { + // 在这里处理页码变化事件,比如更新UI中的其他部分 + qDebug() << "Page changed to:" << page; + });*/ } void My_Task::SetHomePaheCombox(MyTask entity) { @@ -233,3 +267,25 @@ } } +/* +void My_Task::PageLoad() +{ + + + //每页显示的数量 + int rowsPerPage=10; + //获取数据总数量 + int totalPages = (data.count() + rowsPerPage - 1) / rowsPerPage; + for (int i = 0; i < totalPages; ++i) { + QPushButton *button = new QPushButton(QString::number(i + 1), this); + button->setCheckable(true); + connect(button, &QPushButton::clicked, this, [this, i] { onPageChanged(i); }); + pageButtons[i] = button; + pageLayout->addWidget(button); + } +} +void My_Task::onPageChanged(int pageIndex) { + currentPage = pageIndex; + updateTable(pageIndex); +} */ + diff --git a/softwareDirectory/AutoVerScheme/my_task.h b/softwareDirectory/AutoVerScheme/my_task.h index d764c45..289e7f4 100644 --- a/softwareDirectory/AutoVerScheme/my_task.h +++ b/softwareDirectory/AutoVerScheme/my_task.h @@ -28,6 +28,7 @@ void on_SeachButton_clicked(); public: QList data; + private: Ui::My_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/my_task.ui b/softwareDirectory/AutoVerScheme/my_task.ui index 16aff2f..4ba856a 100644 --- a/softwareDirectory/AutoVerScheme/my_task.ui +++ b/softwareDirectory/AutoVerScheme/my_task.ui @@ -6,8 +6,8 @@ 0 0 - 1366 - 577 + 1375 + 592 @@ -215,16 +215,34 @@ - + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + - - -