sysconfig.cpp 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. #include "sysconfig.h"
  2. #include "ui_sysconfig.h"
  3. #include "includes.h"
  4. #include "maindlg.h"
  5. sysconfig::sysconfig(QWidget *parent)
  6. : QWidget(parent)
  7. , ui(new Ui::sysconfig)
  8. {
  9. ui->setupUi(this);
  10. m_pMainDlg = static_cast<MainDlg*>(parent);//保存上级窗口指针
  11. memset(&m_stSysConfig, 0, sizeof(SYS_CONFIG_T));//初始化
  12. configSignalSlot();
  13. initUi();
  14. }
  15. sysconfig::~sysconfig()
  16. {
  17. delete ui;
  18. }
  19. //配置界面按钮信号与槽
  20. void sysconfig::configSignalSlot(){
  21. connect(ui->pushButtonAllSel, &QPushButton::clicked, this, &this->selectAllItem);//全选
  22. connect(ui->pushButtonAllNoSel, &QPushButton::clicked, this, &this->selectAllNoItem);//全不选
  23. connect(ui->pushButtonClear, &QPushButton::clicked, this, &this->clearAllItem);//清空
  24. connect(ui->pushButtonQuery, &QPushButton::clicked, this, &sysconfig::queryParam);//查询参数
  25. connect(ui->pushButtonConfig, &QPushButton::clicked, this, &sysconfig::configParam);//设置参数
  26. }
  27. void sysconfig::initUi(){
  28. selectAllItem();
  29. queryParam();
  30. }
  31. //全选
  32. void sysconfig::selectAllItem(){
  33. ui->checkBoxHostUrl->setChecked(true);
  34. ui->checkBoxHostPort->setChecked(true);
  35. }
  36. //全不选
  37. void sysconfig::selectAllNoItem(){
  38. ui->checkBoxHostUrl->setChecked(false);
  39. ui->checkBoxHostPort->setChecked(false);
  40. }
  41. //清空参数
  42. void sysconfig::clearAllItem(){
  43. QString strText = "";
  44. ui->lineEditHostUrl->setText(strText);
  45. ui->spinBoxHostPort->setValue(1);
  46. }
  47. //获得系统参数
  48. void sysconfig::getSysConfigParam(QString *pstrHostUrl, QString *pstrHostPort){
  49. QString strText = "";
  50. QString folderPath = "mx_ips8000";
  51. QString filePath = "";
  52. //判断文件夹是否存在
  53. QDir dir(folderPath);
  54. if (!dir.exists()) {
  55. dir.mkpath("."); // 创建文件夹,如果它不存在
  56. }
  57. filePath = folderPath + "/IPS8000GUI.ini";
  58. //创建读指针
  59. QSettings *configIniRead = new QSettings(filePath, QSettings::IniFormat);
  60. strText = configIniRead->value("/host/url").toString();
  61. *pstrHostUrl = strText.trimmed();//去掉首尾空格
  62. strText = configIniRead->value("/host/port").toString();
  63. *pstrHostPort = strText.trimmed();//去掉首尾空格
  64. return;
  65. }
  66. //查询参数
  67. void sysconfig::queryParam(){
  68. QString strText = "";
  69. QString folderPath = "mx_ips8000";
  70. QString filePath = "";
  71. //判断文件夹是否存在
  72. QDir dir(folderPath);
  73. if (!dir.exists()) {
  74. dir.mkpath("."); // 创建文件夹,如果它不存在
  75. }
  76. filePath = folderPath + "/IPS8000GUI.ini";
  77. //创建读指针
  78. QSettings *configIniRead = new QSettings(filePath, QSettings::IniFormat);
  79. //读取主机地址
  80. if(ui->checkBoxHostUrl->isChecked()){
  81. strText = configIniRead->value("/host/url").toString();
  82. strText = strText.trimmed();//去掉首尾空格
  83. ui->lineEditHostUrl->setText(strText);
  84. m_stSysConfig.hostUrl = strText;
  85. }
  86. //读取主机端口
  87. if(ui->checkBoxHostPort->isChecked()){
  88. strText = configIniRead->value("/host/port").toString();
  89. strText = strText.trimmed();//去掉首尾空格
  90. ui->spinBoxHostPort->setValue(strText.toInt());
  91. m_stSysConfig.hostPort = strText.toInt();
  92. }
  93. //读入入完成后删除指针
  94. delete configIniRead;
  95. }
  96. //配置参数,将参数保存到本地ini文件中
  97. void sysconfig::configParam(){
  98. QString strText = "";
  99. QByteArray baData;
  100. quint8 byCharLen = 0;
  101. quint32 dwPort = 0;
  102. QString folderPath = "mx_ips8000";
  103. QString filePath = "";
  104. QMessageBox::StandardButton dlg;
  105. dlg = QMessageBox::question(this, "提示", "确定要设置系统参数吗?", QMessageBox::Yes|QMessageBox::No);
  106. if (dlg == QMessageBox::No) {
  107. return;
  108. }
  109. //判断文件夹是否存在
  110. QDir dir(folderPath);
  111. if (!dir.exists()) {
  112. dir.mkpath("."); // 创建文件夹,如果它不存在
  113. }
  114. filePath = folderPath + "/IPS8000GUI.ini";
  115. //创建写指针
  116. QSettings *configIniWrite = new QSettings(filePath, QSettings::IniFormat);
  117. //管理中心URL
  118. if(ui->checkBoxHostUrl->isChecked()){
  119. strText = ui->lineEditHostUrl->text();
  120. strText = strText.trimmed();
  121. baData = strText.toUtf8();
  122. byCharLen = baData.size();
  123. if(byCharLen < 6){
  124. QMessageBox::information(this, "提示", "请输入正确的主机地址");
  125. return;
  126. }
  127. //向ini文件中写入内容,setValue函数的两个参数是键值对
  128. //向ini文件的host节写入内容
  129. configIniWrite->setValue("/host/url", strText);
  130. m_stSysConfig.hostUrl = strText;
  131. }
  132. //管理中心端口
  133. if(ui->checkBoxHostPort->isChecked()){
  134. dwPort = ui->spinBoxHostPort->value();
  135. if(dwPort <= 0){
  136. QMessageBox::information(this, "提示", "请输入正确的网络端口");
  137. return;
  138. }
  139. //向ini文件的Project节写入内容
  140. configIniWrite->setValue("/host/port", dwPort);
  141. m_stSysConfig.hostPort = dwPort;
  142. }
  143. //写入完成后删除指针
  144. delete configIniWrite;
  145. //重新配置http模块
  146. m_pMainDlg->configHttpReq();
  147. QMessageBox::information(this, "提示", "保存系统参数成功");
  148. }