#ifndef SINGLERELAY_NOK_H #define SINGLERELAY_NOK_H #include #include #include #include #include "data_config.h" #include "config_mgr.h" #include "singlerelay_data.h" #include //数据模型类 #include namespace Ui { class SingleRelay_NOK; } class SingleRelay_NOK : public QWidget { Q_OBJECT public: explicit SingleRelay_NOK(int slot,CardType cardtype,QWidget *parent = nullptr); ~SingleRelay_NOK(); int slot_no; CardType car_type; private slots: void on_pushButton_confirm_clicked(); void on_pushButton_cancel_clicked(); void on_comboBox_vote_group_currentIndexChanged(int index); void OnButtonGroup(QAbstractButton *); void onComboBoxIndexChanged(int index); void slotDeleteItem(); void on_treeView_Relay_customContextMenuRequested(const QPoint &pos); private: Ui::SingleRelay_NOK *ui; QButtonGroup * btnGroup_slot = nullptr; QListWidget *list_widget_available = nullptr; QTreeView *treeView_relay; QStandardItemModel *model_Relay; std::shared_ptr relay_data = nullptr; int current_index; int vote_current_index; QMap channelNameMap; void Init(); 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); }; #endif // SINGLERELAY_NOK_H