#include "settingnum.h" #include "ui_settingnum.h" #include #include #include "customcombobox.h" #include "onesettingitem.h" SettingNum::SettingNum(QDialog *parent) : QDialog(parent), ui(new Ui::SettingNum) { ui->setupUi(this); m_logger = spdlog::get("EyeMap"); if(m_logger == nullptr) { qDebug() << "获取 EyeMap logger 失败"; return; } /* 设置无边框 */ this->setWindowFlags(Qt::FramelessWindowHint); /* 加载QSS */ QFile fileQss(":/qss/SettingNum/SettingNum.qss"); if(fileQss.open(QFile::ReadOnly)) { QString qss = fileQss.readAll(); this->setStyleSheet(qss); fileQss.close(); } else { SPDLOG_LOGGER_ERROR(m_logger, "加载QSS文件失败"); } /* 设置下拉框可选个数 */ QStringList listRow; listRow << "1" << "2" << "3" << "4"; ui->comboBox_rowNum->addItems(listRow); ui->comboBox_columnNum->addItem("1"); ui->comboBox_columnNum->addItem("2"); ui->comboBox_rowNum->setCurrentIndex(1); ui->comboBox_columnNum->setCurrentIndex(1); connect(ui->pBtn_close, &QPushButton::clicked, this, &SettingNum::do_pBtn_close); } SettingNum::~SettingNum() { delete ui; } /* 设置行数和列数 */ void SettingNum::setRowAndColumn(int row, int column) { ui->comboBox_rowNum->setCurrentIndex(row - 1); ui->comboBox_columnNum->setCurrentIndex(column - 1); /* 根据 行 x 列 总数计算需要显示的个数 */ int num = row * column; for(int i = 0; i < 8; i++) { OneSettingItem *item = new OneSettingItem(ui->widget_list); item->setNum(i + 1); m_listItem.append(item); } /* 移动item的位置 */ layoutItem(num); } void SettingNum::do_pBtn_close() { this->close(); } /** * @brief 布局item * * @param num 需要显示的几个item */ void SettingNum::layoutItem(int num) { for(auto item : m_listItem) { auto dy = (item->getNum() - 1) * 48; item->move(0, dy); if(item->getNum() > num) { item->hide(); } else { item->show(); } } }