奥特QT DDS 插件库
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

ConfigDialog.cpp 2.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #include "ConfigDialog.hpp"
  2. #include <QVBoxLayout>
  3. #include <QHBoxLayout>
  4. #include <QFormLayout>
  5. #include <QJsonDocument>
  6. ConfigDialog::ConfigDialog(QWidget* parent)
  7. : QDialog(parent)
  8. {
  9. setWindowTitle(tr("PLC Configuration"));
  10. // 创建输入控件
  11. ipEdit_ = new QLineEdit("192.168.0.1", this);
  12. rackEdit_ = new QLineEdit("0", this);
  13. slotEdit_ = new QLineEdit("1", this);
  14. dbConfigEdit_ = new QLineEdit("1", this);
  15. dbCommandEdit_ = new QLineEdit("2", this);
  16. dbStatusEdit_ = new QLineEdit("3", this);
  17. dbPointsEdit_ = new QLineEdit("4", this);
  18. // 创建按钮
  19. okButton_ = new QPushButton(tr("OK"), this);
  20. cancelButton_ = new QPushButton(tr("Cancel"), this);
  21. // 创建布局
  22. auto mainLayout = new QVBoxLayout(this);
  23. auto formLayout = new QFormLayout;
  24. auto buttonLayout = new QHBoxLayout;
  25. // 添加输入控件到表单布局
  26. formLayout->addRow(tr("IP Address:"), ipEdit_);
  27. formLayout->addRow(tr("Rack:"), rackEdit_);
  28. formLayout->addRow(tr("Slot:"), slotEdit_);
  29. formLayout->addRow(tr("Config DB:"), dbConfigEdit_);
  30. formLayout->addRow(tr("Command DB:"), dbCommandEdit_);
  31. formLayout->addRow(tr("Status DB:"), dbStatusEdit_);
  32. formLayout->addRow(tr("Points DB:"), dbPointsEdit_);
  33. // 添加按钮到按钮布局
  34. buttonLayout->addWidget(okButton_);
  35. buttonLayout->addWidget(cancelButton_);
  36. // 组合布局
  37. mainLayout->addLayout(formLayout);
  38. mainLayout->addLayout(buttonLayout);
  39. // 连接信号
  40. connect(okButton_, &QPushButton::clicked, this, &ConfigDialog::onOKClicked);
  41. connect(cancelButton_, &QPushButton::clicked, this, &ConfigDialog::onCancelClicked);
  42. }
  43. void ConfigDialog::onOKClicked()
  44. {
  45. emit configFinished(generateConfig());
  46. accept();
  47. }
  48. void ConfigDialog::onCancelClicked()
  49. {
  50. reject();
  51. }
  52. QString ConfigDialog::generateConfig()
  53. {
  54. QJsonObject config;
  55. config["ip"] = ipEdit_->text();
  56. config["rack"] = rackEdit_->text().toInt();
  57. config["slot"] = slotEdit_->text().toInt();
  58. config["db_config"] = dbConfigEdit_->text().toInt();
  59. config["db_command"] = dbCommandEdit_->text().toInt();
  60. config["db_status"] = dbStatusEdit_->text().toInt();
  61. config["db_points"] = dbPointsEdit_->text().toInt();
  62. QJsonDocument doc(config);
  63. return doc.toJson(QJsonDocument::Compact);
  64. }