123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- #include "compareitemdetailwidget.h"
- #include "ui_compareitemdetailwidget.h"
- #include "UIStyleManager.h"
- CompareItemDetailWidget::CompareItemDetailWidget(QWidget *parent) :
- DialogBase(parent),
- ui(new Ui::CompareItemDetailWidget)
- {
- QWidget* contentWidget = new QWidget(this);
- ui->setupUi(contentWidget);
- /* 设置内容到弹窗中 */
- setContentWidget(contentWidget);
- /* 设置标题 */
- setTitle(tr("对比项详情"));
- /* 底栏 */
- removeBottomWidget();
- /* 设置提示文本 */
- ui->label_tip->setText("备注: 其他通道都同主通道进行信号对比");
- /* 设置QSS */
- setQSS();
- /* 初始化表格,需要在设置QSS之后再初始化 */
- initTable();
- }
- CompareItemDetailWidget::~CompareItemDetailWidget()
- {
- delete ui;
- }
- /* 设置对比项信息 */
- void CompareItemDetailWidget::setCompareItemInfo(const CompareItemInfo_t& info)
- {
- /* 设置对比项名称 */
- ui->label_compareItemName->setText(info.strName);
- /* 设置是否启用对比项 */
- ui->label_compareItemEnable->setText(info.isEnable ? "启用" : "未启用");
- for(const auto& it : info.mapRoad)
- {
- /* 添加一行 */
- QList<QTableWidgetItem*> items;
- /* 序号 */
- items.append(new QTableWidgetItem(QString::number(it.nCompareRoadNum)));
- /* 通道 */
- QString roadName = it.nCompareRoadNum == 1 ? "主通道" : QString("%1通道").arg(it.nCompareRoadNum);
- items.append(new QTableWidgetItem(roadName));
- /* 通道名称 */
- items.append(new QTableWidgetItem(it.strCompareRoadName));
- /* 通道声卡设备编号 */
- QString soundCardRoad = QString("%1:%2").arg(it.scRoadInfo.strSoundCardName, QString::number(it.scRoadInfo.roadInfo.nRoadNum));
- items.append(new QTableWidgetItem(soundCardRoad));
- int row = ui->tableWidget->rowCount();
- ui->tableWidget->insertRow(row);
- ui->tableWidget->setItem(row, 0, items[0]);
- ui->tableWidget->setItem(row, 1, items[1]);
- ui->tableWidget->setItem(row, 2, items[2]);
- ui->tableWidget->setItem(row, 3, items[3]);
- /* 设置表格行高 */
- ui->tableWidget->setRowHeight(row, 48);
- }
- }
- /* 设置QSS */
- void CompareItemDetailWidget::setQSS()
- {
- QString qssPath = UIStyle.getQSSPath() + "/compareitemdetailwidget.qss";
- QFile file(qssPath);
- if(file.open(QFile::ReadOnly))
- {
- QString qss = file.readAll();
- getContentWidget()->setStyleSheet(qss);
- file.close();
- }else {
- SPDLOG_LOGGER_ERROR(m_logger, "Failed to open QSS file: {}", qssPath.toStdString());
- }
- }
- /* 初始化表格 */
- void CompareItemDetailWidget::initTable()
- {
- /* 设置表格属性 */
- /* 设置单元格不可编辑 */
- ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
- /* 选择整行 */
- ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
- /* 单选模式 */
- ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection);
- /* 不显示网格线 */
- ui->tableWidget->setShowGrid(false);
- /* 取消选中项的虚线 */
- // ui->tableWidget->setAlternatingRowColors(true);
- /* 禁止显示横向滚动条 */
- ui->tableWidget->horizontalHeader()->setStretchLastSection(true); /* 设置最后一列拉伸 */
- /* 设置表格头部不可点击 */
- ui->tableWidget->horizontalHeader()->setSectionsClickable(false);
- /* 设置表格头部不可拖动 */
- ui->tableWidget->horizontalHeader()->setSectionsMovable(false);
- /* 设置表格头部不可调整大小 */
- ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Fixed);
-
- /* 设置不显示行表头 */
- ui->tableWidget->verticalHeader()->setVisible(false);
- /* 设置表格高度 */
- ui->tableWidget->verticalHeader()->setMinimumHeight(48);
- /* 设置表格头部高度 */
- ui->tableWidget->horizontalHeader()->setMinimumHeight(48);
- /* 设置表格头部对齐方式 */
- ui->tableWidget->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft | Qt::AlignVCenter);
-
- /* 设置表格列数 */
- ui->tableWidget->setColumnCount(4);
- /* 添加标题 */
- QStringList headers;
- headers << "序号" << "通道" << "通道名称" << "通道声卡设备编号";
- ui->tableWidget->setHorizontalHeaderLabels(headers);
- /* 设置表格列宽度 */
- ui->tableWidget->setColumnWidth(0, 60); /* 序号 */
- ui->tableWidget->setColumnWidth(1, 160); /* 通道 */
- ui->tableWidget->setColumnWidth(2, 240); /* 通道名称 */
- ui->tableWidget->setColumnWidth(3, 240); /* 通道声卡设备编号 */
- }
|