#ifndef SETTINGNUM_H #define SETTINGNUM_H #include #include "spdlog/spdlog.h" #include "EyeMapInfo.h" class OneShadow; class OneSettingItem; namespace Ui { class SettingNum; } class SettingNum : public QDialog { Q_OBJECT public: explicit SettingNum(QDialog *parent = nullptr); ~SettingNum(); /* 设置行数和列数 */ void setRowAndColumn(int row, int column); /* 设置每个项的信息 */ void setEveryEyeMapInfo(const QList &listInfo); /* 设置可用的通道信息 */ void setChannelList(const QList &listChannelInfo); protected: void paintEvent(QPaintEvent *event) override; /* 事件过滤器 */ bool eventFilter(QObject *watched, QEvent *event) override; private slots: /* 关闭按钮槽函数 */ void do_pBtn_close(); /* 点击了OK按钮 */ void do_pBtn_ok(); /* 点击了取消按钮 */ void do_pBtn_cancel(); /* 选择行和列槽函数 */ void do_selectRowAndColumn(int index); /* 通道选择槽函数,选择了一个通道,取消其他项可能已经选择的相同通道 */ void do_selectChannel(const OscChnNum channel, const QString &channelName); private: /* 布局item */ void layoutItem(int num); public: int row = 0; /* 行 */ int column = 0; /* 列 */ bool isOk = false; /* 是否点击了OK按钮 */ private: Ui::SettingNum *ui; std::shared_ptr m_logger = nullptr; OneShadow *m_shadow = nullptr; QList m_listItem; }; #endif // SETTINGNUM_H