#include "MainWindow.h" #include "ui_MainWindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); // 设置窗口位置和大小 resize(1366, 768); // 绑定信号与槽 connect(ui->pagedTable, &QPagedTable::reloadTablePagedData, this, &MainWindow::getStandardDeviceList); // 初始化表格基本样式 ui->pagedTable->initTableWidget(); ui->pagedTable->setPage(page.tableRowCount, page.currentPage, page.totalCount, page.totalPage); // 设置表头 ui->pagedTable->setColumns(buildColumns()); ui->pagedTable->setMultiCheckType(QPagedTable::MultiCheckType::RADIO); createContextMenu(); } MainWindow::~MainWindow() { delete ui; } void MainWindow::showEvent(QShowEvent * event) { ui->pagedTable->initTableHeader(); ui->pagedTable->adjustTableWidth(); getStandardDeviceList(0); } void MainWindow::resizeEvent(QResizeEvent *event) { if (ui->pagedTable->isVisible()) { ui->pagedTable->adjustTableWidth(); } } QList<QPagedTableColumn> MainWindow::buildColumns() { QPagedTableColumn colId; colId.idx = 0; colId.name = "id"; colId.text = "ID"; colId.value = colId.name; colId.setWidthType("pixel"); colId.width = 0; QPagedTableColumn colIndex; colIndex.idx = 1; colIndex.name = "index"; colIndex.text = "序号"; colIndex.value = colIndex.name; colIndex.setWidthType("pixel"); colIndex.width = 60; QPagedTableColumn colName; colName.idx = 2; colName.name = "name"; colName.text = "设备名称"; colName.value = colName.name; colName.setWidthType("percent"); colName.width = 0.4; colName.setAlignType("left"); colName.setResizeMode("stretch"); QPagedTableColumn colModel; colModel.idx = 3; colModel.name = "model"; colModel.text = "型号"; colModel.value = colModel.name; colModel.setWidthType("percent"); colModel.width = 0.1; QPagedTableColumn colSerialNo; colSerialNo.idx = 4; colSerialNo.name = "serialNo"; colSerialNo.text = "出厂编号"; colSerialNo.value = colSerialNo.name; colSerialNo.setWidthType("percent"); colSerialNo.width = 0.1; QPagedTableColumn colMaker; colMaker.idx = 5; colMaker.name = "maker"; colMaker.text = "生产厂家"; colMaker.value = colMaker.name; colMaker.setWidthType("percent"); colMaker.width = 0.15; QPagedTableColumn colRange; colRange.idx = 6; colRange.name = "range"; colRange.text = "测量范围"; colRange.value = colRange.name; colRange.setWidthType("percent"); colRange.width = 0.25; QList<QPagedTableColumn> columnList; columnList.append(colId); columnList.append(colIndex); columnList.append(colName); columnList.append(colModel); columnList.append(colSerialNo); columnList.append(colMaker); columnList.append(colRange); return columnList; } void MainWindow::createContextMenu() { QStringList menuList; menuList << "详情" << "编辑" << "删除"; ui->pagedTable->setContextMenuLabels(menuList); connect(ui->pagedTable, &QPagedTable::contextMenuActionTrigged, [=](int index, int rowIdx, int colIdx){ switch (index) { case 0: rowDetailActionHandler(rowIdx, colIdx); break; case 1: rowEditActionHandler(rowIdx, colIdx); break; case 2: rowDeleteActionHandler(rowIdx, colIdx); break; } }); } void MainWindow::getStandardDeviceList(int currPage) { EquipmentDao eqptDao; BizEquipmentRequest request; request.equipmentName = ui->lineEdit->text(); page.currentPage = currPage; QList<BizEquipmentInfoDto> standDevList = eqptDao.getBizEqptInfoListPage(request, page); QList<QMap<QString, QVariant>> pageData; for (BizEquipmentInfoDto bizEqpt : standDevList) { QMap<QString, QVariant> item; item.insert("id", bizEqpt.id); item.insert("name", bizEqpt.equipmentName); item.insert("model", bizEqpt.model); item.insert("serialNo", bizEqpt.manufactureNo); item.insert("maker", bizEqpt.manufacturer); item.insert("range", bizEqpt.testRange); pageData.append(item); } ui->pagedTable->setTotalCount(page.totalCount); ui->pagedTable->setDatas(pageData); } void MainWindow::on_pushButton_clicked() { getStandardDeviceList(0); } void MainWindow::rowDetailActionHandler(int rowIdx, int colIdx) { qDebug() << "row detail" << rowIdx << colIdx; } void MainWindow::rowEditActionHandler(int rowIdx, int colIdx) { qDebug() << "row edit" << rowIdx << colIdx; } void MainWindow::rowDeleteActionHandler(int rowIdx, int colIdx) { qDebug() << "row delete" << rowIdx << colIdx; }