#include "ChannelItem.h" #include "ui_ChannelItem.h" #include <QMutex> #include <QMessageBox> ChannelItem::ChannelItem(QWidget *parent) : QWidget(parent), ui(new Ui::ChannelItem) { ui->setupUi(this); QFont font("微软雅黑"); font.setPixelSize(16); this->setProperty("form", "channel"); } ChannelItem::~ChannelItem() { delete ui; } void ChannelItem::setIndex(int value) { index = value; } void ChannelItem::updatePhaseMeasureData(PhaseDataDto * phaseData) { int size = phaseVector.at(index).size(); double ps = phaseData->channelData.at(index) * 1e12; // 显示ps数据 // ui->rawValue->setText(QString::number(ps, 'f', 3) + "ps"); // 原始数据显示单位为ps ui->samplingOne->setText(QString::number(size)); ui->samplingTen->setText(QString::number((int)size/10)); ui->samplingHund->setText(QString::number((int)size/100)); ui->samplingThou->setText(QString::number((int)size/1000)); ui->samplingTT->setText(QString::number((int)size/10000)); ui->stabilityOne->setText(channelAllan.at(index).isEmpty() == false ? QString::number(channelAllan.at(index).at(0), 'e', 4) : "0.0000"); // 科学计数法显示 ui->stabilityTen->setText(channelAllan.at(index).isEmpty() == false ? QString::number(channelAllan.at(index).at(1), 'e', 4) : "0.0000"); ui->stabilityHund->setText(channelAllan.at(index).isEmpty() == false ? QString::number(channelAllan.at(index).at(2), 'e', 4) : "0.0000"); ui->stabilityThou->setText(channelAllan.at(index).isEmpty() == false ? QString::number(channelAllan.at(index).at(3), 'e', 4) : "0.0000"); ui->stabilityTT->setText(channelAllan.at(index).isEmpty() == false ? QString::number(channelAllan.at(index).at(4), 'e', 4) : "0.0000"); } void ChannelItem::on_clearDataButt_clicked() { QMessageBox confirmBox(QMessageBox::Question, "确认", "是否清除数据以重新计算稳定度?", NULL); confirmBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No); confirmBox.button(QMessageBox::Yes)->setText("是"); confirmBox.button(QMessageBox::Yes)->setMinimumWidth(50); confirmBox.button(QMessageBox::No)->setText("否"); if (confirmBox.exec() == QMessageBox::Yes) { // 清除测量数据 QVector<QStringList> pNullVector; QVector<double> pNullAllen(5, 0.0); QMutex mutex; mutex.lock(); phaseVector[index].clear(); channelAllenSigma[index].swap(pNullAllen); mutex.unlock(); } } void ChannelItem::on_chartViewButt_clicked() { ChannelCharts * chartFrame = new ChannelCharts(); chartFrame->setWindowModality(Qt::ApplicationModal); chartFrame->initAllenChart(index); chartFrame->initDataChart(index); chartFrame->setTitleText((QString("通道 - %1 数据曲线").arg(index + 1))); chartFrame->show(); }