#include "structDataActionParaDlg.h" #include #include #include StructDataActionParaDlg::StructDataActionParaDlg(QWidget *parent) : QDialog(parent) { setWindowTitle("动作参数"); resize(350, 300); QVBoxLayout *layout = new QVBoxLayout(this); // 告警列表 m_listWidget = new QListWidget(this); layout->addWidget(m_listWidget); // 添加区 QHBoxLayout *addLayout = new QHBoxLayout; m_editLine = new QLineEdit(this); m_editLine->setPlaceholderText("输入动作参数"); m_btnAdd = new QPushButton("添加", this); addLayout->addWidget(m_editLine, 1); addLayout->addWidget(m_btnAdd); layout->addLayout(addLayout); // 操作区 QHBoxLayout *opLayout = new QHBoxLayout; m_btnDelete = new QPushButton("删除选中", this); m_btnClear = new QPushButton("清空", this); opLayout->addWidget(m_btnDelete); opLayout->addWidget(m_btnClear); opLayout->addStretch(); layout->addLayout(opLayout); // 确定取消 QHBoxLayout *btnLayout = new QHBoxLayout; m_btnOk = new QPushButton("确定", this); m_btnCancel = new QPushButton("取消", this); btnLayout->addStretch(); btnLayout->addWidget(m_btnOk); btnLayout->addWidget(m_btnCancel); layout->addLayout(btnLayout); // 连接信号 connect(m_btnAdd, &QPushButton::clicked, this, &StructDataActionParaDlg::onAddClicked); connect(m_btnDelete, &QPushButton::clicked, this, &StructDataActionParaDlg::onDeleteClicked); connect(m_btnClear, &QPushButton::clicked, m_listWidget, &QListWidget::clear); connect(m_editLine, &QLineEdit::returnPressed, this, &StructDataActionParaDlg::onAddClicked); connect(m_btnOk, &QPushButton::clicked, this, &QDialog::accept); connect(m_btnCancel, &QPushButton::clicked, this, &QDialog::reject); } void StructDataActionParaDlg::setAlarms(const QStringList &alarms) { m_listWidget->clear(); m_listWidget->addItems(alarms); } QStringList StructDataActionParaDlg::alarms() const { QStringList result; for (int i = 0; i < m_listWidget->count(); ++i) { result << m_listWidget->item(i)->text(); } return result; } void StructDataActionParaDlg::onAddClicked() { QString text = m_editLine->text().trimmed(); if (!text.isEmpty()) { m_listWidget->addItem(text); m_editLine->clear(); } } void StructDataActionParaDlg::onDeleteClicked() { qDeleteAll(m_listWidget->selectedItems()); }