TSI_Config/singlerelay.h

57 lines
1.6 KiB
C
Raw Permalink Normal View History

2024-12-18 16:46:39 +08:00
#ifndef SINGLERELAY_H
#define SINGLERELAY_H
#include <QDialog>
2025-04-17 20:33:26 +08:00
#include <QTextEdit>
2025-04-19 16:25:33 +08:00
#include <QButtonGroup>
#include <QPushButton>
#include "data_config.h"
#include "config_mgr.h"
#include "singlerelay_data.h"
2025-04-25 14:28:27 +08:00
#include <QStandardItemModel> //数据模型类
#include <QTreeView>
2024-12-18 16:46:39 +08:00
namespace Ui {
class SingleRelay;
}
2025-04-19 16:25:33 +08:00
class SingleRelay : public QDialog {
Q_OBJECT
public:
explicit SingleRelay(int slot,int cardtype,QWidget *parent = nullptr);
~SingleRelay();
int slot_no;
CardType car_type;
private slots:
void keyPressEvent(QKeyEvent *event);
void on_pushButton_cancel_clicked();
void OnButtonGroup(QAbstractButton *);
void on_pushButton_confirm_clicked();
void onComboBoxIndexChanged(int index);
2025-07-09 20:24:50 +08:00
void slotDeleteItem();
void on_treeView_Relay_customContextMenuRequested(const QPoint &pos);
2025-04-19 16:25:33 +08:00
private:
Ui::SingleRelay *ui;
QButtonGroup * btnGroup_slot = nullptr;
2025-04-25 14:28:27 +08:00
QListWidget *list_widget_available = nullptr;
QTreeView *treeView_relay;
QStandardItemModel *model_Relay;
2025-07-09 20:24:50 +08:00
std::shared_ptr<SingleRelayData> relay_data = nullptr;
2025-04-19 16:25:33 +08:00
int current_index;
2025-04-23 17:13:05 +08:00
QMap<QString, QString> channelNameMap;
2025-04-19 16:25:33 +08:00
void Init();
2025-07-09 20:24:50 +08:00
void buildTreeFromExpression(QTreeView *treeView, const QString &expr);
ExprNode* parseExpression(const QString& expr, int& pos);
QStandardItem* buildItemTree(ExprNode* node);
void setExpressionToTreeView(QTreeView* treeView, const QString& expr);
QString buildLogicExpression(QStandardItem *item);
ExprValidationResult validateLogicExpression(const QString& expr);
2025-04-19 16:25:33 +08:00
};
2024-12-18 16:46:39 +08:00
#endif // SINGLERELAY_H