#include "QSystemSettingDlg.h" #include #include #include "QCheckBox" #include "QLabel" #include "QSpinBox" #include "DetectState.h" #include "QFileDialog" #include "QMessageBox" #include "qshowimg.h" #include #include "InfoFile.h" #define DEVELOP_UI_CHECK_SAVE_GOOD "SaveGoodcheckBox" #define DEVELOP_UI_CHECK_SAVE_BAD "SaveBadcheckBox" #define DEVELOP_UI_CHECK_SAVE_CUTGOOD "SaveCutGoodcheckBox" #define DEVELOP_UI_CHECK_SAVE_CUTBAD "SaveCutBadcheckBox" #define DEVELOP_UI_CHECK_CHKBOXALL2A "chkBoxAll2A" #pragma execution_character_set("utf-8") const QString DEVELOP_DETECT_CAMERE_VIRSUAL = QObject::tr("虚拟相机触发"); const QString DEVELOP_DETECT_CAMERE_TRUE = QObject::tr("硬件相机触发"); const QString DEVELOP_DETECT_DEBUG_NOUSER = QObject::tr("调试免登陆"); const QString DEVELOP_DETECT_DEBUG_USER = QObject::tr("正常工作模式"); const QString DEVELOP_DETECT_CAM_OUTTRIGER = QObject::tr("传感器触发"); const QString DEVELOP_DETECT_CAM_SOFTER = QObject::tr("软件触发"); const QString DEVELOP_PLC_TRIGER_DOWM = QObject::tr("下降沿触发"); const QString DEVELOP_PLC_TRIGER_UP = QObject::tr("上升沿触发"); QSystemSettingDlg::QSystemSettingDlg(QWidget *parent) : QWidget(parent) { ui.setupUi(this); m_setting = new QSettings(".\\user\\systemfile.ini", QSettings::IniFormat); readSettingFile(); m_listwidgetItemStr.append(tr("相关设备配置")); m_listwidgetItemStr.append(tr("检测图像设置")); m_listwidgetItemStr.append(tr("PLC相关设置")); m_listwidgetItemStr.append(tr("报警灯测试")); m_listwidgetItemStr.append(tr("高级功能")); { InitTreeWidget(ui.treeWidget); addComRoot(ui.treeWidget, m_listwidgetItemStr.at(0));//相关设备配置 addPicRoot(ui.treeWidget, m_listwidgetItemStr.at(1));//检测图像设置 addPLCRoot(ui.treeWidget, m_listwidgetItemStr.at(2));//PLC相关设置 addLightRoot(ui.treeWidget, m_listwidgetItemStr.at(3));//报警灯测试 ui.treeWidget->expandAll(); addSuperRoot(ui.treeWidget, m_listwidgetItemStr.at(4));//高级功能 } { ui.listWidget->clear(); ui.listWidget->addItems(m_listwidgetItemStr); for (int nIndex = 0; nIndex < ui.listWidget->count(); nIndex++) { QListWidgetItem *itenn = ui.listWidget->item(nIndex); itenn->setBackgroundColor(QColor(0, 50, 50, 100)); QSize s = itenn->sizeHint(); itenn->setSizeHint(QSize(s.width(), 30)); } connect(ui.listWidget, SIGNAL(currentRowChanged(int)), this, SLOT(onSetCurrentIndex(int))); } } QSystemSettingDlg::~QSystemSettingDlg() { for (int nIndex = 0; nIndex < developitems.size(); nIndex++) { QTreeWidgetItem* pItem = developitems.at(nIndex); delete pItem; pItem = NULL; } for (int nIndex = 0; nIndex < comitems.size(); nIndex++) { QTreeWidgetItem* pItem = comitems.at(nIndex); delete pItem; pItem = NULL; } for (int nIndex = 0; nIndex < camitems.size(); nIndex++) { QTreeWidgetItem* pItem = camitems.at(nIndex); delete pItem; pItem = NULL; } for (int nIndex = 0; nIndex < picitems.size(); nIndex++) { QTreeWidgetItem* pItem = picitems.at(nIndex); delete pItem; pItem = NULL; } for (int nIndex = 0; nIndex < PLCitems.size(); nIndex++) { QTreeWidgetItem* pItem = PLCitems.at(nIndex); delete pItem; pItem = NULL; } for (int nIndex = 0; nIndex < lightitems.size(); nIndex++) { QTreeWidgetItem* pItem = lightitems.at(nIndex); delete pItem; pItem = NULL; } // for (QMap::iterator its = m_TreeItemMap.begin(); its != m_TreeItemMap.end(); ++its) // { // delete *its; // *its = NULL; // } m_TreeItemMap.clear(); for (int nIndex = 0; nIndex < m_listObj.size(); nIndex++) { QObject* p = m_listObj.at(nIndex); delete p; p = NULL; } if (pDiskCleanThread) { pDiskCleanThread->ExitThread(); pDiskCleanThread->quit(); pDiskCleanThread->wait(50); delete pDiskCleanThread; pDiskCleanThread = NULL; } if (m_setting) { delete m_setting; m_setting = NULL; } } void QSystemSettingDlg::onShowWidget(int nLevel) { if (nLevel == 9 || DetectState::instance()->m_Debug == 100) { HidPLCUI(false); HidDevelopUI(false); } else if (nLevel == 5) { HidDevelopUI(true); HidPLCUI(true); } else if (nLevel == 4) { ui.treeWidget->setItemHidden(picitems.at(7), true); HidDevelopUI(true); HidPLCUI(true); } else { HidDevelopUI(true); HidPLCUI(true); } ui.listWidget->setCurrentRow(0); } bool QSystemSettingDlg::InitTreeWidget(QTreeWidget* pTreewidget) { if (pTreewidget == NULL) return false; QStringList header; header.append(tr("属性")); header.append(tr("值")); pTreewidget->setHeaderLabels(header); pTreewidget->header()->setStretchLastSection(true); pTreewidget->setColumnCount(2); pTreewidget->setStyleSheet("QTreeView::item:hover{background-color:rgb(0,255,0,50)}" "QTreeView::item:selected{background-color:rgb(67,101,234,100)}"); //pTreewidget->setSelectionModel(QAbstractItemView::ExtendedSelection); pTreewidget->setColumnWidth(0, 180); return true; } void QSystemSettingDlg::addComRoot(class QTreeWidget *pTreewidget, QString strName /*= QString()*/) { // QTreeWidgetItem *m_ComItems = new QTreeWidgetItem(pTreewidget, QStringList(tr("相关设备配置"))); // pStationSetButton = new QPushButton(tr("打开配置页面")); // pTreewidget->setItemWidget(m_ComItems, 1, pStationSetButton); // m_ComItems->setSizeHint(1, QSize(100, 30)); // pStationSetButton->setObjectName("pStationSetButton"); // connect(pStationSetButton, SIGNAL(clicked()), this, SLOT(onTreeWidgetButton())); // m_listObj.append(pStationSetButton); // m_TreeItemMap.insert(strName, m_ComItems); QTreeWidgetItem *pLanguage = new QTreeWidgetItem(pTreewidget, QStringList(tr("语言"))); m_Language = new QComboBox; pTreewidget->setItemWidget(pLanguage, 1, m_Language); m_TreeItemMap.insert("language", pLanguage); m_Language->setObjectName("m_Language"); QString strpath = QCoreApplication::applicationDirPath() + "/language/"; QStringList strList = getDirNames(strpath); if (strList.size() <= 0) strList << "Chinese"; m_Language->addItems(strList); QSettings languageSetting("hubdetect.ini", QSettings::IniFormat); QString strLangeage = languageSetting.value("language", "Chinese").toString(); m_Language->setCurrentText(strLangeage); connect(m_Language, SIGNAL(currentTextChanged(const QString &)), this, SLOT(oncurrentChanged(const QString &))); m_listObj.append(m_Language); } QStringList QSystemSettingDlg::getDirNames(QString strPath) { QStringList strDirNames; QDir dir(strPath); if (!dir.exists()) { return strDirNames; } dir.setFilter(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot); dir.setSorting(QDir::DirsFirst); // 文件夹优先 // 转换成一个List QFileInfoList list = dir.entryInfoList(); if (list.size() < 1) { return strDirNames; } int i = 0; do { QFileInfo fileInfo = list.at(i); QString tt = fileInfo.fileName(); // 如果是文件夹 bool bisDir = fileInfo.isDir(); if (bisDir) { strDirNames.append(fileInfo.fileName()); } i++; } while (i < list.size()); return strDirNames; } void QSystemSettingDlg::addPicRoot(QTreeWidget *pTreewidget, QString strName) { QTreeWidgetItem *m_RootItems = new QTreeWidgetItem(pTreewidget, QStringList(tr("检测图像设置"))); m_TreeItemMap.insert(strName, m_RootItems); m_RootItems->setSizeHint(1, QSize(100, 30)); picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("检测背景更换")))); picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("抠图后")))); picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("抠图后")))); picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("原图")))); picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("原图")))); picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("检测结果")))); picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("图像保存路径")))); picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("设置保存路径")))); picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("打开图像路径")))); picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("保存当前设置")))); m_RootItems->addChildren(picitems); QCheckBox *m_saveImgRes_good = new QCheckBox; m_saveImgRes_good->setText(tr("保存已匹配图")); m_saveImgRes_good->setObjectName("m_saveImgRes_good"); connect(m_saveImgRes_good, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); m_saveImgRes_good->setChecked(DetectState::instance()->saveCutGood == (int)true); QCheckBox *m_saveImgRes_bad = new QCheckBox; m_saveImgRes_bad->setText(tr("保存无匹配图")); m_saveImgRes_bad->setObjectName("m_saveImgRes_bad"); connect(m_saveImgRes_bad, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); m_saveImgRes_bad->setChecked(DetectState::instance()->saveCutBad == (int)true); QCheckBox *m_saveImgSrc_good = new QCheckBox; m_saveImgSrc_good->setText(tr("保存已匹配图")); m_saveImgSrc_good->setObjectName("m_saveImgSrc_good"); connect(m_saveImgSrc_good, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); m_saveImgSrc_good->setChecked(DetectState::instance()->saveGood == (int)true); QCheckBox *m_saveImgSrc_bad = new QCheckBox; m_saveImgSrc_bad->setText(tr("保存无匹配图")); m_saveImgSrc_bad->setObjectName("m_saveImgSrc_bad"); connect(m_saveImgSrc_bad, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); m_saveImgSrc_bad->setChecked(DetectState::instance()->saveBad == (int)true); QCheckBox *m_ResAll2A = new QCheckBox; m_ResAll2A->setText(tr("轮毂全去A通道")); m_ResAll2A->setObjectName("m_ResAll2A"); connect(m_ResAll2A, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); m_ResAll2A->setChecked(DetectState::instance()->m_bObjAll2A == (int)true); QPushButton* pChangeBGbp = new QPushButton(tr("查看检测背景")); connect(pChangeBGbp, SIGNAL(clicked()), this, SLOT(onChangeBackground())); m_pLbShowPath = new QLabel; m_pLbShowPath->setText(DetectState::instance()->m_SaveImgDirPath); QPushButton *pbSetSavePath = new QPushButton(tr("设置保存路径")); pbSetSavePath->setObjectName("pbSetSavePath"); connect(pbSetSavePath, SIGNAL(clicked()), this, SLOT(onOpenDataPath())); QPushButton *pbOpenImgPath = new QPushButton(tr("打开图像路径")); pbOpenImgPath->setObjectName("pbOpenImgPath"); connect(pbOpenImgPath, SIGNAL(clicked()), this, SLOT(onOpenDataPath())); QPushButton* pSavePara = new QPushButton(tr("保存参数")); pSavePara->setObjectName("pSavePara"); connect(pSavePara, SIGNAL(clicked()), this, SLOT(onTreeWidgetButton())); pTreewidget->setItemWidget(picitems.at(0), 1, pChangeBGbp); pTreewidget->setItemWidget(picitems.at(1), 1, m_saveImgRes_good); pTreewidget->setItemWidget(picitems.at(2), 1, m_saveImgRes_bad); pTreewidget->setItemWidget(picitems.at(3), 1, m_saveImgSrc_good); pTreewidget->setItemWidget(picitems.at(4), 1, m_saveImgSrc_bad); pTreewidget->setItemWidget(picitems.at(5), 1, m_ResAll2A); pTreewidget->setItemWidget(picitems.at(6), 1, m_pLbShowPath); pTreewidget->setItemWidget(picitems.at(7), 1, pbSetSavePath); pTreewidget->setItemWidget(picitems.at(8), 1, pbOpenImgPath); pTreewidget->setItemWidget(picitems.at(9), 1, pSavePara); m_listObj.append(pChangeBGbp); m_listObj.append(m_saveImgRes_bad); m_listObj.append(m_saveImgRes_good); m_listObj.append(m_saveImgSrc_bad); m_listObj.append(m_saveImgSrc_good); m_listObj.append(m_ResAll2A); m_listObj.append(m_pLbShowPath); m_listObj.append(pbSetSavePath); m_listObj.append(pbOpenImgPath); m_listObj.append(pSavePara); picitems.at(0)->setSizeHint(1, QSize(100, 40)); picitems.at(1)->setSizeHint(1, QSize(100, 30)); picitems.at(2)->setSizeHint(1, QSize(100, 30)); picitems.at(3)->setSizeHint(1, QSize(100, 30)); picitems.at(4)->setSizeHint(1, QSize(100, 30)); picitems.at(5)->setSizeHint(1, QSize(100, 30)); picitems.at(6)->setSizeHint(1, QSize(100, 40)); picitems.at(7)->setSizeHint(1, QSize(100, 40)); picitems.at(8)->setSizeHint(1, QSize(100, 40)); picitems.at(9)->setSizeHint(1, QSize(100, 40)); } void QSystemSettingDlg::addPLCRoot(QTreeWidget *pTreewidget, QString strName) { QTreeWidgetItem *m_PLCItems = new QTreeWidgetItem(pTreewidget, QStringList(tr("PLC相关设置"))); m_TreeItemMap.insert(strName, m_PLCItems); m_PLCItems->setSizeHint(1, QSize(100, 30)); PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("保存设置")))); PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("传感器触发滤波(ms)")))); PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("相机触发延时(ms)")))); PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("相机触发脉宽(ms)")))); PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("光源熄灭延时时间(ms)")))); PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("传感器触发类型")))); PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("保持结果时长(ms)")))); PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("连接超时次数")))); PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("超时是否显示信息")))); PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("是否自动重启服务器")))); PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("是否保存超时日志")))); m_PLCItems->addChildren(PLCitems); QPushButton *savePLCpara = new QPushButton(tr("发送并保存")); m_PLCTrigerFilter = new QSpinBox(); m_PLCTrigerFilter->setMinimum(1); m_PLCTrigerFilter->setMaximum(65536); m_PLCTrigerFilter->setValue(DetectState::instance()->m_PLC_TrigerFilter); m_PLCCameraDelay = new QSpinBox(); m_PLCCameraDelay->setMinimum(1); m_PLCCameraDelay->setMaximum(65536); m_PLCCameraDelay->setValue(DetectState::instance()->m_PLC_CamTrigDelay); m_PLCCameraPulse = new QSpinBox(); m_PLCCameraPulse->setMinimum(1); m_PLCCameraPulse->setMaximum(65536); m_PLCCameraPulse->setValue(DetectState::instance()->m_PLC_CamTrigPulse); m_PLCLightDelay = new QSpinBox(); m_PLCLightDelay->setMinimum(1); m_PLCLightDelay->setMaximum(65536); m_PLCLightDelay->setValue(DetectState::instance()->m_PLC_LightDelay); m_PLCResHoldTime = new QSpinBox(); m_PLCResHoldTime->setMinimum(1); m_PLCResHoldTime->setMaximum(65536); m_PLCResHoldTime->setValue(DetectState::instance()->m_PLC_ResHoldTime); m_PLCTrigerType = new QComboBox(); QStringList strList; strList.append(DEVELOP_PLC_TRIGER_DOWM); strList.append(DEVELOP_PLC_TRIGER_UP); m_PLCTrigerType->addItems(strList); if (DetectState::instance()->m_PLC_TrigerType == 0) m_PLCTrigerType->setCurrentText(DEVELOP_PLC_TRIGER_DOWM); else m_PLCTrigerType->setCurrentText(DEVELOP_PLC_TRIGER_UP); savePLCpara->setObjectName("savePLCpara"); connect(savePLCpara, SIGNAL(clicked()), this, SLOT(onSavePLCPara())); m_PLC_RestartSeverCount = new QSpinBox(); m_PLC_RestartSeverCount->setMinimum(1); m_PLC_RestartSeverCount->setMaximum(65536); m_PLC_RestartSeverCount->setToolTip(tr("超时提醒n次后自动重启服务")); m_PLC_RestartSeverCount->setValue(DetectState::instance()->m_PLC_RestartSeverCount); QCheckBox *m_PLC_ShowTimerOutMsg = new QCheckBox; m_PLC_ShowTimerOutMsg->setText(tr("是否显示提示")); m_PLC_ShowTimerOutMsg->setText(tr("勾选后通信超时时会显示提醒信息")); m_PLC_ShowTimerOutMsg->setObjectName("m_PLC_ShowTimerOutMsg"); connect(m_PLC_ShowTimerOutMsg, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); m_PLC_ShowTimerOutMsg->setChecked(DetectState::instance()->m_PLC_ShowTimerOutMsg == (int)true); QCheckBox *m_PLC_IsResServer = new QCheckBox; m_PLC_IsResServer->setText(tr("是否自动重启服务器")); m_PLC_IsResServer->setToolTip(tr("勾选后通信超时次数达到后,系统将自动重启服务,PLC会自动重新连接")); m_PLC_IsResServer->setObjectName("m_PLC_IsResServer"); connect(m_PLC_IsResServer, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); m_PLC_IsResServer->setChecked(DetectState::instance()->m_PLC_IsResServer == (int)true); QCheckBox *m_PLC_SaveMsgInLog = new QCheckBox; m_PLC_SaveMsgInLog->setText(tr("保存信息到系统日志")); m_PLC_SaveMsgInLog->setToolTip(tr("勾选后表示超时信息将自动保存到系统日志中,便于查询")); m_PLC_SaveMsgInLog->setObjectName("m_PLC_SaveMsgInLog"); connect(m_PLC_SaveMsgInLog, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); m_PLC_SaveMsgInLog->setChecked(DetectState::instance()->m_PLC_SaveMsgInLog == (int)true); PLCitems.at(0)->setSizeHint(1, QSize(100, 40)); PLCitems.at(1)->setSizeHint(1, QSize(100, 40)); PLCitems.at(2)->setSizeHint(1, QSize(100, 40)); PLCitems.at(3)->setSizeHint(1, QSize(100, 40)); PLCitems.at(4)->setSizeHint(1, QSize(100, 40)); PLCitems.at(5)->setSizeHint(1, QSize(100, 40)); PLCitems.at(6)->setSizeHint(1, QSize(100, 40)); PLCitems.at(7)->setSizeHint(1, QSize(100, 40)); PLCitems.at(8)->setSizeHint(1, QSize(100, 40)); PLCitems.at(9)->setSizeHint(1, QSize(100, 40)); PLCitems.at(10)->setSizeHint(1, QSize(100, 40)); pTreewidget->setItemWidget(PLCitems.at(0), 1, savePLCpara); pTreewidget->setItemWidget(PLCitems.at(1), 1, m_PLCTrigerFilter); pTreewidget->setItemWidget(PLCitems.at(2), 1, m_PLCCameraDelay); pTreewidget->setItemWidget(PLCitems.at(3), 1, m_PLCCameraPulse); pTreewidget->setItemWidget(PLCitems.at(4), 1, m_PLCLightDelay); pTreewidget->setItemWidget(PLCitems.at(5), 1, m_PLCTrigerType); pTreewidget->setItemWidget(PLCitems.at(6), 1, m_PLCResHoldTime); pTreewidget->setItemWidget(PLCitems.at(7), 1, m_PLC_RestartSeverCount); pTreewidget->setItemWidget(PLCitems.at(8), 1, m_PLC_ShowTimerOutMsg); pTreewidget->setItemWidget(PLCitems.at(9), 1, m_PLC_IsResServer); pTreewidget->setItemWidget(PLCitems.at(10), 1, m_PLC_SaveMsgInLog); m_listObj.append(savePLCpara); m_listObj.append(m_PLCTrigerFilter); m_listObj.append(m_PLCCameraDelay); m_listObj.append(m_PLCCameraPulse); m_listObj.append(m_PLCLightDelay); m_listObj.append(m_PLCTrigerType); m_listObj.append(m_PLC_RestartSeverCount); m_listObj.append(m_PLC_ShowTimerOutMsg); m_listObj.append(m_PLC_IsResServer); m_listObj.append(m_PLC_SaveMsgInLog); m_listObj.append(m_PLCResHoldTime); } void QSystemSettingDlg::addLightRoot(QTreeWidget *pTreewidget, QString strName) { QTreeWidgetItem *m_LightItems = new QTreeWidgetItem(pTreewidget, QStringList(tr("报警灯测试"))); m_TreeItemMap.insert(strName, m_LightItems); m_LightItems->setSizeHint(1, QSize(100, 30)); lightitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("红灯")))); lightitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("绿灯")))); lightitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("黄灯")))); lightitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("蜂鸣")))); m_LightItems->addChildren(lightitems); QPushButton *redLight = new QPushButton(tr("红灯闪一下")); QPushButton *grenLight = new QPushButton(tr("绿灯闪一下")); QPushButton *yellLight = new QPushButton(tr("黄灯闪一下")); QPushButton *beeLight = new QPushButton(tr("蜂鸣响一下")); redLight->setObjectName("redLight"); grenLight->setObjectName("grenLight"); yellLight->setObjectName("yellLight"); beeLight->setObjectName("beeLight"); connect(redLight, SIGNAL(clicked()), this, SLOT(onLightTest())); connect(grenLight, SIGNAL(clicked()), this, SLOT(onLightTest())); connect(yellLight, SIGNAL(clicked()), this, SLOT(onLightTest())); connect(beeLight, SIGNAL(clicked()), this, SLOT(onLightTest())); lightitems.at(0)->setSizeHint(1, QSize(100, 40)); lightitems.at(1)->setSizeHint(1, QSize(100, 40)); lightitems.at(2)->setSizeHint(1, QSize(100, 40)); lightitems.at(3)->setSizeHint(1, QSize(100, 40)); pTreewidget->setItemWidget(lightitems.at(0), 1, redLight); pTreewidget->setItemWidget(lightitems.at(1), 1, grenLight); pTreewidget->setItemWidget(lightitems.at(2), 1, yellLight); pTreewidget->setItemWidget(lightitems.at(3), 1, beeLight); m_listObj.append(redLight); m_listObj.append(grenLight); m_listObj.append(yellLight); m_listObj.append(beeLight); } void QSystemSettingDlg::addSuperRoot(class QTreeWidget *pTreewidget, QString strName) { QTreeWidgetItem *m_DevelopItems = new QTreeWidgetItem(pTreewidget, QStringList(tr("开发者使用"))); m_TreeItemMap.insert(strName, m_DevelopItems); m_DevelopItems->setSizeHint(1, QSize(100, 30)); developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("保存设置")))); developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("相机模式")))); developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("虚拟相机触发时间")))); developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("系统模式")))); developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("相机触发模式")))); developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("串口发送心跳包")))); developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("网络发送心跳包")))); developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("串口发送通道结果")))); developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("网络发送检测结果")))); developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("网络发送通道结果")))); developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("光栅使用标志")))); developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("保存高度厚度数据")))); developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("通道分配")))); developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("启动时是否检测")))); developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("显示厚度数据")))); developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("显示厚度采样数据")))); m_DevelopItems->addChildren(developitems); m_pCameraTrgType = new QComboBox(); QStringList m_strList; m_strList.append(QString(DEVELOP_DETECT_CAMERE_VIRSUAL)); m_strList.append(QString(DEVELOP_DETECT_CAMERE_TRUE)); m_pCameraTrgType->addItems(m_strList); m_pCameraTrgTimes = new QSpinBox(); m_pCameraTrgTimes->setMaximum(99999); m_pDebugModel = new QComboBox(); QStringList debug_strlist; debug_strlist.append(QString(DEVELOP_DETECT_DEBUG_NOUSER)); debug_strlist.append(QString(DEVELOP_DETECT_DEBUG_USER)); m_pDebugModel->addItems(debug_strlist); m_pSystype = new QComboBox(); QStringList sysStrList; sysStrList.append(QString(DEVELOP_DETECT_CAM_OUTTRIGER)); sysStrList.append(QString(DEVELOP_DETECT_CAM_SOFTER)); m_pSystype->addItems(sysStrList); QCheckBox *m_AutoSendTick2COM = new QCheckBox; m_AutoSendTick2COM->setText(tr("串口发送心跳包")); m_AutoSendTick2COM->setObjectName("m_AutoSendTick2COM"); connect(m_AutoSendTick2COM, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); m_AutoSendTick2COM->setChecked(DetectState::instance()->m_AutoSendTick2COM == (int)true); QCheckBox *m_AutoSendTick2Net = new QCheckBox; m_AutoSendTick2Net->setText(tr("网络发送心跳包")); m_AutoSendTick2Net->setObjectName("m_AutoSendTick2Net"); connect(m_AutoSendTick2Net, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); m_AutoSendTick2Net->setChecked(DetectState::instance()->m_AutoSendTick2Net == (int)true); QCheckBox *m_SendChannelRes2COM = new QCheckBox; m_SendChannelRes2COM->setText(tr("串口发送通道结果")); m_SendChannelRes2COM->setObjectName("m_SendChannelRes2COM"); connect(m_SendChannelRes2COM, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); m_SendChannelRes2COM->setChecked(DetectState::instance()->m_SendChannelRes2COM == (int)true); QCheckBox *m_SendDetectStr2Net = new QCheckBox; m_SendDetectStr2Net->setText(tr("网络发送检测结果")); m_SendDetectStr2Net->setObjectName("m_SendDetectStr2Net"); connect(m_SendDetectStr2Net, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); m_SendDetectStr2Net->setChecked(DetectState::instance()->m_SendDetectStr2Net == (int)true); QCheckBox *m_SendChannelRes2Net = new QCheckBox; m_SendChannelRes2Net->setText(tr("网络发送通道结果")); m_SendChannelRes2Net->setObjectName("m_SendChannelRes2Net"); connect(m_SendChannelRes2Net, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); m_SendChannelRes2Net->setChecked(DetectState::instance()->m_SendChannelRes2Net == (int)true); QCheckBox *m_UseRaster = new QCheckBox; m_UseRaster->setText(tr("使用光栅获取厚度")); m_UseRaster->setObjectName("m_UseRaster"); connect(m_UseRaster, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); m_UseRaster->setChecked(DetectState::instance()->m_IsUseRaster == 1); QCheckBox *m_SaveD2HCsv = new QCheckBox; m_SaveD2HCsv->setText(tr("保存数据用于测试")); m_SaveD2HCsv->setObjectName("m_SaveD2HCsv"); connect(m_SaveD2HCsv, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); m_SaveD2HCsv->setChecked(DetectState::instance()->m_SaveD2HCsv == 1); QCheckBox *m_IsUseChannel = new QCheckBox; m_IsUseChannel->setText(tr("是否使用通道分配")); m_IsUseChannel->setObjectName("m_IsUseChannel"); connect(m_IsUseChannel, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); m_IsUseChannel->setChecked(DetectState::instance()->m_IsUseChannel == 1); QCheckBox *m_StartAndDetect = new QCheckBox; m_StartAndDetect->setText(tr("是否启动就开始检测")); m_StartAndDetect->setObjectName("m_StartAndDetect"); connect(m_StartAndDetect, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); m_StartAndDetect->setChecked(DetectState::instance()->m_StartAndDetect == 1); QCheckBox *m_showThressValue = new QCheckBox; m_showThressValue->setText(tr("是否显示")); m_showThressValue->setObjectName("m_showThressValue"); connect(m_showThressValue, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); m_showThressValue->setChecked(DetectState::instance()->m_showThressValue == 1); QCheckBox *m_showThressList = new QCheckBox; m_showThressList->setText(tr("是否显示")); m_showThressList->setObjectName("m_showThressList"); connect(m_showThressList, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); m_showThressList->setChecked(DetectState::instance()->m_showThressList == 1); QPushButton *m_DebugSave = new QPushButton(tr("保存")); m_DebugSave->setObjectName("m_DebugSave"); connect(m_DebugSave, SIGNAL(clicked()), this, SLOT(onTreeWidgetButton())); pTreewidget->setItemWidget(developitems.at(0), 1, m_DebugSave); pTreewidget->setItemWidget(developitems.at(1), 1, m_pCameraTrgType); pTreewidget->setItemWidget(developitems.at(2), 1, m_pCameraTrgTimes); pTreewidget->setItemWidget(developitems.at(3), 1, m_pDebugModel); pTreewidget->setItemWidget(developitems.at(4), 1, m_pSystype); pTreewidget->setItemWidget(developitems.at(5), 1, m_AutoSendTick2COM); pTreewidget->setItemWidget(developitems.at(6), 1, m_AutoSendTick2Net); pTreewidget->setItemWidget(developitems.at(7), 1, m_SendChannelRes2COM); pTreewidget->setItemWidget(developitems.at(8), 1, m_SendDetectStr2Net); pTreewidget->setItemWidget(developitems.at(9), 1, m_SendChannelRes2Net); pTreewidget->setItemWidget(developitems.at(10), 1, m_UseRaster); pTreewidget->setItemWidget(developitems.at(11), 1, m_SaveD2HCsv); pTreewidget->setItemWidget(developitems.at(12), 1, m_IsUseChannel); pTreewidget->setItemWidget(developitems.at(13), 1, m_StartAndDetect); pTreewidget->setItemWidget(developitems.at(14), 1, m_showThressValue); pTreewidget->setItemWidget(developitems.at(15), 1, m_showThressList); m_listObj.append(m_DebugSave); m_listObj.append(m_pCameraTrgType); m_listObj.append(m_pCameraTrgTimes); m_listObj.append(m_pDebugModel); m_listObj.append(m_pSystype); m_listObj.append(m_AutoSendTick2COM); m_listObj.append(m_AutoSendTick2Net); m_listObj.append(m_SendChannelRes2COM); m_listObj.append(m_SendDetectStr2Net); m_listObj.append(m_SendChannelRes2Net); m_listObj.append(m_UseRaster); m_listObj.append(m_SaveD2HCsv); m_listObj.append(m_IsUseChannel); m_listObj.append(m_StartAndDetect); m_listObj.append(m_showThressValue); m_listObj.append(m_showThressList); developitems.at(0)->setSizeHint(1, QSize(100, 30)); developitems.at(1)->setSizeHint(1, QSize(100, 30)); developitems.at(2)->setSizeHint(1, QSize(100, 30)); developitems.at(3)->setSizeHint(1, QSize(100, 30)); developitems.at(4)->setSizeHint(1, QSize(100, 30)); developitems.at(5)->setSizeHint(1, QSize(100, 30)); developitems.at(6)->setSizeHint(1, QSize(100, 30)); developitems.at(7)->setSizeHint(1, QSize(100, 30)); developitems.at(8)->setSizeHint(1, QSize(100, 30)); developitems.at(9)->setSizeHint(1, QSize(100, 30)); developitems.at(10)->setSizeHint(1, QSize(100, 30)); developitems.at(11)->setSizeHint(1, QSize(100, 30)); developitems.at(12)->setSizeHint(1, QSize(100, 30)); developitems.at(13)->setSizeHint(1, QSize(100, 30)); developitems.at(14)->setSizeHint(1, QSize(100, 30)); developitems.at(15)->setSizeHint(1, QSize(100, 30)); InitDebugTree(); } void QSystemSettingDlg::HidPLCUI(bool nflag) { ui.treeWidget->setItemHidden(PLCitems.at(7), nflag); ui.treeWidget->setItemHidden(PLCitems.at(8), nflag); ui.treeWidget->setItemHidden(PLCitems.at(9), nflag); ui.treeWidget->setItemHidden(PLCitems.at(10), nflag); } void QSystemSettingDlg::HidDevelopUI(bool nflag) { ui.treeWidget->setItemHidden(developitems.at(0), nflag); ui.treeWidget->setItemHidden(developitems.at(1), nflag); ui.treeWidget->setItemHidden(developitems.at(2), nflag); ui.treeWidget->setItemHidden(developitems.at(3), nflag); ui.treeWidget->setItemHidden(developitems.at(4), nflag); ui.treeWidget->setItemHidden(developitems.at(5), nflag); ui.treeWidget->setItemHidden(developitems.at(6), nflag); ui.treeWidget->setItemHidden(developitems.at(7), nflag); ui.treeWidget->setItemHidden(developitems.at(8), nflag); ui.treeWidget->setItemHidden(developitems.at(9), nflag); ui.treeWidget->setItemHidden(developitems.at(10), nflag); ui.treeWidget->setItemHidden(developitems.at(11), nflag); ui.treeWidget->setItemHidden(developitems.at(12), nflag); ui.treeWidget->setItemHidden(developitems.at(13), nflag); ui.treeWidget->setItemHidden(developitems.at(14), nflag); ui.treeWidget->setItemHidden(developitems.at(15), nflag); } void QSystemSettingDlg::InitDebugTree(void) { if (m_pCameraTrgType) { if (DetectState::instance()->m_Virtual_Camera == 1) m_pCameraTrgType->setCurrentText(DEVELOP_DETECT_CAMERE_VIRSUAL); else m_pCameraTrgType->setCurrentText(DEVELOP_DETECT_CAMERE_TRUE); } if (m_pCameraTrgTimes) m_pCameraTrgTimes->setValue(DetectState::instance()->m_Visural_Time); if (m_pDebugModel) { if (DetectState::instance()->m_Debug == 100) m_pDebugModel->setCurrentText(DEVELOP_DETECT_DEBUG_NOUSER); else m_pDebugModel->setCurrentText(DEVELOP_DETECT_DEBUG_USER); } if (m_pSystype) { if (DetectState::instance()->m_CameraTrigeType == 1) m_pSystype->setCurrentText(DEVELOP_DETECT_CAM_OUTTRIGER); else m_pSystype->setCurrentText(DEVELOP_DETECT_CAM_SOFTER); } } Q_SLOT void QSystemSettingDlg::onCheckstateChanged(int state) { QString strObj = sender()->objectName(); if (strObj == "m_saveImgRes_good") { DetectState::instance()->saveCutGood = int(state == 2); } else if (strObj == "m_saveImgRes_bad") { DetectState::instance()->saveCutBad = int(state == 2); } else if (strObj == "m_saveImgSrc_good") { DetectState::instance()->saveGood = int(state == 2); } else if (strObj == "m_saveImgSrc_bad") { DetectState::instance()->saveBad = int(state == 2); } else if (strObj == "m_ResAll2A") { DetectState::instance()->m_bObjAll2A = (state == 2 ? true : false); } else if (strObj == "m_AutoSendTick2COM") { DetectState::instance()->m_AutoSendTick2COM = int(state == 2); DetectState::instance()->saveDeteImage(); } else if (strObj == "m_AutoSendTick2Net") { DetectState::instance()->m_AutoSendTick2Net = int(state == 2); DetectState::instance()->saveDeteImage(); } else if (strObj == "m_SendDetectStr2Net") { DetectState::instance()->m_SendDetectStr2Net = int(state == 2); DetectState::instance()->saveDeteImage(); } else if (strObj == "m_SendChannelRes2Net") { DetectState::instance()->m_SendChannelRes2Net = int(state == 2); DetectState::instance()->saveDeteImage(); } else if (strObj == "m_SendChannelRes2COM") { DetectState::instance()->m_SendChannelRes2COM = int(state == 2); DetectState::instance()->saveDeteImage(); } else if (strObj == "m_UseRaster") { DetectState::instance()->m_IsUseRaster = int(state == 2); DetectState::instance()->saveDeteImage(); } else if (strObj == "m_SaveD2HCsv") { DetectState::instance()->m_SaveD2HCsv = int(state == 2); } else if (strObj == "m_IsUseChannel") { DetectState::instance()->m_IsUseChannel = int(state == 2); DetectState::instance()->saveDeteImage(); } else if (strObj == "m_StartAndDetect") { DetectState::instance()->m_StartAndDetect = int(state == 2); DetectState::instance()->saveDeteImage(); } else if (strObj == "m_PLC_RestartSeverCount") { DetectState::instance()->m_PLC_RestartSeverCount = int(state == 2); DetectState::instance()->savePLCPara(); } else if (strObj == "m_PLC_ShowTimerOutMsg") { DetectState::instance()->m_PLC_ShowTimerOutMsg = int(state == 2); DetectState::instance()->savePLCPara(); } else if (strObj == "m_PLC_IsResServer") { DetectState::instance()->m_PLC_IsResServer = int(state == 2); DetectState::instance()->savePLCPara(); } else if (strObj == "m_PLC_SaveMsgInLog") { DetectState::instance()->m_PLC_SaveMsgInLog = int(state == 2); DetectState::instance()->savePLCPara(); } else if (strObj == "m_showThressValue") { DetectState::instance()->m_showThressValue = int(state == 2); } else if (strObj == "m_showThressList") { DetectState::instance()->m_showThressList = int(state == 2); } } Q_SLOT void QSystemSettingDlg::onSetCurrentIndex(int nIndex) { for (QMap::iterator pp = m_TreeItemMap.begin(); pp != m_TreeItemMap.end(); ++pp) { (*pp)->setExpanded(false); } QString strname = ui.listWidget->item(nIndex)->data(0).toString(); if (m_TreeItemMap.contains(strname)) { QTreeWidgetItem *p = m_TreeItemMap.value(strname); if (p) { ui.treeWidget->setCurrentItem(p, QItemSelectionModel::SelectCurrent); p->setExpanded(true); } } } Q_SLOT void QSystemSettingDlg::onSavePLCPara() { { DetectState::instance()->m_PLC_TrigerFilter = m_PLCTrigerFilter->value(); DetectState::instance()->m_PLC_CamTrigDelay = m_PLCCameraDelay->value(); DetectState::instance()->m_PLC_CamTrigPulse = m_PLCCameraPulse->value(); DetectState::instance()->m_PLC_LightDelay = m_PLCLightDelay->value(); DetectState::instance()->m_PLC_RestartSeverCount = m_PLC_RestartSeverCount->value(); DetectState::instance()->m_PLC_ResHoldTime = m_PLCResHoldTime->value(); if (m_PLCTrigerType->currentText() == DEVELOP_PLC_TRIGER_DOWM) DetectState::instance()->m_PLC_TrigerType = 0; else if (m_PLCTrigerType->currentText() == DEVELOP_PLC_TRIGER_UP) DetectState::instance()->m_PLC_TrigerType = 1; DetectState::instance()->savePLCPara(); // QVariant nType = QVariant(WF_PLCPARA); // emit(sgGenalData(nType, WF_PARASET)); // emit sgShowMsg(tr("数据已发送并保存")); } } void QSystemSettingDlg::readSettingFile() { if (m_setting) { QString m_str = "/CheckThread/"; nCheckDays = m_setting->value(m_str + "days", 7).toInt(); nCheckThreadEable = m_setting->value(m_str + "IsUse", true).toBool(); } } void QSystemSettingDlg::writeSettingFile() { if (m_setting) { QString m_str = "/CheckThread/"; m_setting->setValue(m_str + "days", nCheckDays); m_setting->setValue(m_str + "IsUse", nCheckThreadEable); } } Q_SLOT void QSystemSettingDlg::onChangeBG() { QFileDialog fileDialog; fileDialog.setWindowTitle(tr("请选择您的背景图")); fileDialog.setNameFilter("Picture(*.bmp *.jpg *.png)"); fileDialog.setFileMode(QFileDialog::ExistingFiles); if (fileDialog.exec() == QDialog::Accepted) { QStringList backgroundFile = fileDialog.selectedFiles(); if (backgroundFile.size() > 0) { QString DstPath = /*m_pCtrl->appRoot() +*/ "\\user\\background.png"; QString sourcePath = backgroundFile.at(0); DstPath.replace("\\", "/"); if (sourcePath == DstPath) { // //return; // //return true; } if (!QFile::exists(sourcePath)) { //return false; } QDir *createfile = new QDir; bool exist = createfile->exists(DstPath); if (exist) { //if (converFileIfExist){ createfile->remove(DstPath); //} } if (!QFile::copy(sourcePath, DstPath)) { //return false; } //emit sgChangeBG(DstPath); QMessageBox infobox(QMessageBox::Information, tr("提示"), tr("背景图更新完成,请重启本软件."), QMessageBox::Yes, NULL); infobox.setWindowIcon(QIcon(":/image/leaper")); infobox.setButtonText(QMessageBox::Yes, tr("确认")); infobox.exec(); } } } void QSystemSettingDlg::showEvent(QShowEvent *event) { } Q_SLOT void QSystemSettingDlg::onTreeWidgetButton() { QString strObj = sender()->objectName(); if (strObj == "m_IsModfy") { // m_ComScan->setDisabled(false); // m_ComBoxName->setDisabled(false); // m_ComBoxBaut->setDisabled(false); // pSaveButton->setDisabled(false); } else if (strObj == "m_ComScan") { // disconnect(m_ComBoxBaut,0,0,0); // disconnect(m_ComBoxName,0,0,0); // m_ComBoxName->clear(); // QStringList m_NameList; // foreach(const QSerialPortInfo &info, QSerialPortInfo::availablePorts()) // { // QString comportInfo = info.portName(); // if (!m_NameList.contains(comportInfo)) // m_NameList.append(comportInfo); // } // m_ComBoxName->addItems(m_NameList); // // if (m_ComName){ // m_ComBoxName->setCurrentText(m_ComName->text()); // } // if (m_ComBaut){ // m_ComBoxBaut->setCurrentText(m_ComBaut->text()); // } // connect(m_ComBoxBaut, SIGNAL(currentIndexChanged(int)), this, SLOT(oncurrentIndexChanged(int))); // connect(m_ComBoxName, SIGNAL(currentIndexChanged(int)), this, SLOT(oncurrentIndexChanged(int))); } else if (strObj == "m_Language") { } else if (strObj == "m_DebugSave" || strObj == "pSavePara") { if (m_pCameraTrgType) { if (m_pCameraTrgType->currentText() == DEVELOP_DETECT_CAMERE_VIRSUAL) DetectState::instance()->m_Virtual_Camera = 1; else DetectState::instance()->m_Virtual_Camera = 0; } if (m_pCameraTrgTimes) { DetectState::instance()->m_Visural_Time = m_pCameraTrgTimes->value(); } if (m_pDebugModel) { if (m_pDebugModel->currentText() == DEVELOP_DETECT_DEBUG_NOUSER) DetectState::instance()->m_Debug = 100; else DetectState::instance()->m_Debug = 1001; } if (m_pSystype) { if (m_pSystype->currentText() == DEVELOP_DETECT_CAM_OUTTRIGER) DetectState::instance()->m_CameraTrigeType = 1; else DetectState::instance()->m_CameraTrigeType = 0; } DetectState::instance()->saveDeteImage(); //emit sgShowMsg(tr("保存完成")); } } Q_SLOT void QSystemSettingDlg::oncurrentChanged(const QString &str) { QString strObjName = sender()->objectName(); if ("m_Language" == strObjName) { //emit(sgGenalData("languageSeting", str)); } } Q_SLOT void QSystemSettingDlg::onChangeBackground() { QShowImg m_showImgDlg(this); m_showImgDlg.setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint); m_showImgDlg.setWindowModality(Qt::ApplicationModal); m_showImgDlg.setAttribute(Qt::WA_ShowModal, true); m_showImgDlg.setWindowIcon(QIcon(":/image/leaper")); QString DstPath = ".\\user\\background.png"; connect(&m_showImgDlg, SIGNAL(sgChangeImg()), this, SLOT(onChangeBG())); connect(this, SIGNAL(sgChangeBG(QString)), &m_showImgDlg, SLOT(setPicPath(QString))); m_showImgDlg.setPicPath(DstPath); m_showImgDlg.exec(); } Q_SLOT void QSystemSettingDlg::onOpenDataPath() { QString strObj = sender()->objectName(); if ("pbOpenImgPath" == strObj) { QString strpath = DetectState::instance()->m_SaveImgDirPath + "/Data"; bool bFalg = QDesktopServices::openUrl(QUrl(strpath, QUrl::TolerantMode)); if (!bFalg) { bool bFalgs = QDesktopServices::openUrl(QUrl(DetectState::instance()->m_SaveImgDirPath, QUrl::TolerantMode)); if (!bFalgs) { } } } else if ("pbSetSavePath" == strObj) { QString dir = QFileDialog::getExistingDirectory(NULL, tr("打开文件夹"), QString(), QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); if (!dir.isEmpty()) { if (m_pLbShowPath) m_pLbShowPath->setText(dir); DetectState::instance()->m_SaveImgDirPath = dir; if (pDiskCleanThread) pDiskCleanThread->SetImgStorageFolder(dir + "/Data"); } } } Q_SLOT void QSystemSettingDlg::onLightTest() { QVariant nType = QVariant(WF_LIFHT); QString strObj = sender()->objectName(); if (strObj == "redLight") { //emit(sgGenalData(nType, LIGHT_REDBEE)); } else if (strObj == "grenLight") { //emit(sgGenalData(nType, LIGHT_GREENBEE)); } else if (strObj == "yellLight") { //emit(sgGenalData(nType, LIGHT_YELLOWBEE)); } else if (strObj == "beeLight") { //emit(sgGenalData(nType, LIGHT_BEE)); } }