123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- #include "oneparamitem.h"
- #include "ui_oneparamitem.h"
- #include <QFile>
- #include <QDebug>
- #include "customcombobox.h"
- OneParamItem::OneParamItem(QWidget *parent) :
- QWidget(parent),
- ui(new Ui::OneParamItem)
- {
- ui->setupUi(this);
- m_logger = spdlog::get("EyeMap");
- if(m_logger == nullptr)
- {
- qDebug() << "获取 EyeMap logger 失败";
- return;
- }
- /* 注册事件过滤器 */
- ui->comboBox_voltage->installEventFilter(this);
- /* 加载QSS */
- QFile fileQss(":/qss/ParameterConfig/OneParamItem/OneParamItem.qss");
- if(fileQss.open(QFile::ReadOnly))
- {
- QString qss = fileQss.readAll();
- this->setStyleSheet(qss);
- fileQss.close();
- } else
- {
- SPDLOG_LOGGER_ERROR(m_logger, "加载QSS文件失败");
- }
- /* 添加默认的电压范围 */
- ui->comboBox_voltage->addItem("0.5V", static_cast<int>(OscVoltageRange::CR_500MV));
- ui->comboBox_voltage->addItem("1V", static_cast<int>(OscVoltageRange::CR_1V));
- ui->comboBox_voltage->addItem("2.5V", static_cast<int>(OscVoltageRange::CR_2V5));
- ui->comboBox_voltage->addItem("5V", static_cast<int>(OscVoltageRange::CR_5V));
- /* 设置默认的选项 */
- ui->comboBox_voltage->setCurrentIndex(2);
- /* 连接信号和槽 */
- connect(ui->comboBox_voltage, static_cast<void(QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &OneParamItem::do_selectVoltage);
-
- }
- OneParamItem::~OneParamItem()
- {
- delete ui;
- }
- /* 设置信息 */
- void OneParamItem::setInfo(const OneEyeMapInfo &info)
- {
- eyeMapInfo = info;
- ui->label_title->setText(info.title);
- /* 设置颜色 */
- QString qss = QString(R"(background: %1;
- border-radius: 6px;
- border: 1px solid rgba(255,255,255,0.25);)").arg(info.titleBarColor.name());
- ui->label_color->setStyleSheet(qss);
- /* 设置当前电压值 */
- ui->comboBox_voltage->setCurrentText(getVoltageRangeStr(info.voltageRange));
- }
- /* 事件过滤器 */
- bool OneParamItem::eventFilter(QObject *watched, QEvent *event)
- {
- if(watched == ui->comboBox_voltage)
- {
- if(event->type() == QEvent::Wheel)
- {
- return true;
- }
- }
- return QWidget::eventFilter(watched, event);
- }
- /* 选择了电压值 */
- void OneParamItem::do_selectVoltage(int index)
- {
- eyeMapInfo.voltageRange = static_cast<OscVoltageRange>(ui->comboBox_voltage->currentData().toInt());
- }
- /* 根据输入的枚举值获取字符串 */
- QString OneParamItem::getVoltageRangeStr(OscVoltageRange range)
- {
- switch (range) {
- case OscVoltageRange::CR_100MV:
- return "0.1V";
- case OscVoltageRange::CR_250MV:
- return "0.25V";
- case OscVoltageRange::CR_500MV:
- return "0.5V";
- case OscVoltageRange::CR_1V:
- return "1V";
- case OscVoltageRange::CR_2V5:
- return "2.5V";
- case OscVoltageRange::CR_5V:
- return "5V";
- case OscVoltageRange::CR_8V:
- return "8V";
- default:
- return "2.5V";
- }
- }
|