#include "inspectdataitem.h" #include "ui_inspectdataitem.h" #include "QMessageBox.h" InspectDataItem::InspectDataItem(QWidget *parent) : InfoBase(parent), ui(new Ui::InspectDataItem) { ui->setupUi(this); this->initForm(); } InspectDataItem::~InspectDataItem() { delete ui; } void InspectDataItem::initForm() { //tableWidget设置 //设置控件的边框显示 ui->tableWidget->setStyleSheet("QHeaderView::section {" "border: 1px solid rgba(197, 196, 196, 1);" "border-left:none;" "border-top:none;" "background-color:white;" "}"); //ui->tableWidget->setRowCount(10); // 设置10行 ui->tableWidget->setColumnCount(13); // 设置11列 ui->tableWidget->setColumnWidth(0, 80); // 设置第一列的宽度为100像素 ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 //QTableWidgetItem *item = new QTableWidgetItem("测试数据"); //item->setTextAlignment(Qt::AlignCenter); //ui->tableWidget->setItem(0, 0, item); //设置数据 ui->tableWidget->setColumnWidth(0,0); //初始化TableWidget 设置列 QStringList headers; headers <<"ID"<< "序号" << "设备名称" << "型号规则" << "出厂编号" <<"核查件名称"<<"核查件型号"<<"核查件编号" <<"核查员" << "核查日期" <<"实验室"<<"部门"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); } void InspectDataItem::ShowMessageBox(QString title,QString value) { // 创建一个QMessageBox对象 QMessageBox msgBox; // 设置消息框的标题 msgBox.setWindowTitle(title); // 设置消息框的文本内容 msgBox.setText(value); // 设置消息框的标准按钮,这里是“确定”按钮 msgBox.setStandardButtons(QMessageBox::Ok); // 显示消息框 msgBox.exec(); } void InspectDataItem::Load() { // ======================================================================================== // 主页面初始化 核查管理初始化 // ==================================================================================== ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 ui->tableWidget->setRowCount(0); // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; QList<CheckData> data = dbManager.getCheckData(); for (const CheckData& item : data) { rowCount = ui->tableWidget->rowCount(); ui->tableWidget->insertRow(rowCount); ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.equipment_name)); ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.model)); ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.manufacture_no)); ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.meter_standard_name)); ui->tableWidget->setItem(row, 6, new QTableWidgetItem("缺少")); ui->tableWidget->setItem(row, 7, new QTableWidgetItem(item.meter_standard_id)); ui->tableWidget->setItem(row, 8, new QTableWidgetItem(item.create_user_name)); ui->tableWidget->setItem(row, 9, new QTableWidgetItem(item.check_date.toString())); ui->tableWidget->setItem(row, 10, new QTableWidgetItem("缺少")); ui->tableWidget->setItem(row, 11, new QTableWidgetItem(item.dept_name)); //实现单元格添加两个按钮 // 创建一个QWidget作为单元格的容器 QWidget *widget = new QWidget(); QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 QPushButton *button = new QPushButton("详情"); QPushButton *button2 = new QPushButton("预览"); //设置按钮1简单样式 button->setStyleSheet("QPushButton {" " border: none; /* 无边框 */" " color: green; /* 文本颜色 */" " text-decoration: underline; /* 文本下划线 */" "}"); // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); if (idItem) { QString id = idItem->text(); OnButtonSelectClicked(id); } }); //设置按钮2简单样式 button2->setStyleSheet("QPushButton {" " border: none; /* 无边框 */" " color: green; /* 文本颜色 */" " text-decoration: underline; /* 文本下划线 */" "}"); // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); if (idItem) { QString id = idItem->text(); OnButtonPreViewtClicked(id); } }); //将按钮添加到布局控件 layout->addWidget(button); layout->addWidget(button2); layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 widget->setLayout(layout); //将布局控件添加到 单元格 ui->tableWidget->setCellWidget(row, 12, widget); // 调整表格大小以适应内容 //ui->tableWidget->resizeColumnsToContents(); // ui->tableWidget->resizeRowsToContents(); row++; } } void InspectDataItem::OnButtonSelectClicked(QString id) { // ======================================================================================== // 编辑按钮 点击事件 进入详情页面 // ==================================================================================== //DeviceInfoInit(id); ui->stackedWidget->setCurrentIndex(1); QMessageBox::information(this, "ID",id); } void InspectDataItem::OnButtonPreViewtClicked(QString id) { // ======================================================================================== // 预览按钮 点击事件 进入详情页面 // ==================================================================================== //DeviceInfoInit(id); //ui->stackedWidget->setCurrentIndex(1); QMessageBox::information(this, "ID",id); } void InspectDataItem::on_pushButton_clicked() { ui->stackedWidget->setCurrentIndex(0); }