#include "frmQuit.h" #include #include "datavar.h" #include frmQuit::frmQuit(QWidget* parent) : QWidget(parent) { ui.setupUi(this); //设置无边框 this->setWindowFlags(Qt::FramelessWindowHint); this->setAttribute(Qt::WA_TranslucentBackground); this->setWindowIcon(QIcon(":/Bitmaps/app.ico")); //执行保存参数信号与槽函数 QTimer* p_timer = new QTimer(this); connect(p_timer, SIGNAL(timeout()), this, SLOT(timerEvent())); p_timer->start(200); } void frmQuit::timerEvent() { dataVar::comm_state_buf = 1; QVector FlowProItemList_B = QVector(100); for (int i = 0; i < 20; i++) { FlowProItemList_B.clear(); switch (i) { case 0: if (dataVar::fProItemTab->TempDragListWidget_B1 != nullptr) { FlowProItemList_B = dataVar::fProItemTab->TempDragListWidget_B1->GetAllItemList_B1(); QConfig::ToolBase[i]->m_FlowSortList = FlowProItemList_B; } break; case 1: if (dataVar::fProItemTab->TempDragListWidget_B2 != nullptr) { FlowProItemList_B = dataVar::fProItemTab->TempDragListWidget_B2->GetAllItemList_B2(); QConfig::ToolBase[i]->m_FlowSortList = FlowProItemList_B; } break; case 2: if (dataVar::fProItemTab->TempDragListWidget_B3 != nullptr) { FlowProItemList_B = dataVar::fProItemTab->TempDragListWidget_B3->GetAllItemList_B3(); QConfig::ToolBase[i]->m_FlowSortList = FlowProItemList_B; } break; case 3: if (dataVar::fProItemTab->TempDragListWidget_B4 != nullptr) { FlowProItemList_B = dataVar::fProItemTab->TempDragListWidget_B4->GetAllItemList_B4(); QConfig::ToolBase[i]->m_FlowSortList = FlowProItemList_B; } break; case 4: if (dataVar::fProItemTab->TempDragListWidget_B5 != nullptr) { FlowProItemList_B = dataVar::fProItemTab->TempDragListWidget_B5->GetAllItemList_B5(); QConfig::ToolBase[i]->m_FlowSortList = FlowProItemList_B; } break; case 5: if (dataVar::fProItemTab->TempDragListWidget_B6 != nullptr) { FlowProItemList_B = dataVar::fProItemTab->TempDragListWidget_B6->GetAllItemList_B6(); QConfig::ToolBase[i]->m_FlowSortList = FlowProItemList_B; } break; case 6: if (dataVar::fProItemTab->TempDragListWidget_B7 != nullptr) { FlowProItemList_B = dataVar::fProItemTab->TempDragListWidget_B7->GetAllItemList_B7(); QConfig::ToolBase[i]->m_FlowSortList = FlowProItemList_B; } break; case 7: if (dataVar::fProItemTab->TempDragListWidget_B8 != nullptr) { FlowProItemList_B = dataVar::fProItemTab->TempDragListWidget_B8->GetAllItemList_B8(); QConfig::ToolBase[i]->m_FlowSortList = FlowProItemList_B; } break; case 8: if (dataVar::fProItemTab->TempDragListWidget_B9 != nullptr) { FlowProItemList_B = dataVar::fProItemTab->TempDragListWidget_B9->GetAllItemList_B9(); QConfig::ToolBase[i]->m_FlowSortList = FlowProItemList_B; } break; case 9: if (dataVar::fProItemTab->TempDragListWidget_B10 != nullptr) { FlowProItemList_B = dataVar::fProItemTab->TempDragListWidget_B10->GetAllItemList_B10(); QConfig::ToolBase[i]->m_FlowSortList = FlowProItemList_B; } break; case 10: if (dataVar::fProItemTab->TempDragListWidget_B11 != nullptr) { FlowProItemList_B = dataVar::fProItemTab->TempDragListWidget_B11->GetAllItemList_B11(); QConfig::ToolBase[i]->m_FlowSortList = FlowProItemList_B; } break; case 11: if (dataVar::fProItemTab->TempDragListWidget_B12 != nullptr) { FlowProItemList_B = dataVar::fProItemTab->TempDragListWidget_B12->GetAllItemList_B12(); QConfig::ToolBase[i]->m_FlowSortList = FlowProItemList_B; } break; case 12: if (dataVar::fProItemTab->TempDragListWidget_B13 != nullptr) { FlowProItemList_B = dataVar::fProItemTab->TempDragListWidget_B13->GetAllItemList_B13(); QConfig::ToolBase[i]->m_FlowSortList = FlowProItemList_B; } break; case 13: if (dataVar::fProItemTab->TempDragListWidget_B14 != nullptr) { FlowProItemList_B = dataVar::fProItemTab->TempDragListWidget_B14->GetAllItemList_B14(); QConfig::ToolBase[i]->m_FlowSortList = FlowProItemList_B; } break; case 14: if (dataVar::fProItemTab->TempDragListWidget_B15 != nullptr) { FlowProItemList_B = dataVar::fProItemTab->TempDragListWidget_B15->GetAllItemList_B15(); QConfig::ToolBase[i]->m_FlowSortList = FlowProItemList_B; } break; case 15: if (dataVar::fProItemTab->TempDragListWidget_B16 != nullptr) { FlowProItemList_B = dataVar::fProItemTab->TempDragListWidget_B16->GetAllItemList_B16(); QConfig::ToolBase[i]->m_FlowSortList = FlowProItemList_B; } break; case 16: if (dataVar::fProItemTab->TempDragListWidget_B17 != nullptr) { FlowProItemList_B = dataVar::fProItemTab->TempDragListWidget_B17->GetAllItemList_B17(); QConfig::ToolBase[i]->m_FlowSortList = FlowProItemList_B; } break; case 17: if (dataVar::fProItemTab->TempDragListWidget_B18 != nullptr) { FlowProItemList_B = dataVar::fProItemTab->TempDragListWidget_B18->GetAllItemList_B18(); QConfig::ToolBase[i]->m_FlowSortList = FlowProItemList_B; } break; case 18: if (dataVar::fProItemTab->TempDragListWidget_B19 != nullptr) { FlowProItemList_B = dataVar::fProItemTab->TempDragListWidget_B19->GetAllItemList_B19(); QConfig::ToolBase[i]->m_FlowSortList = FlowProItemList_B; } break; case 19: if (dataVar::fProItemTab->TempDragListWidget_B20 != nullptr) { FlowProItemList_B = dataVar::fProItemTab->TempDragListWidget_B20->GetAllItemList_B20(); QConfig::ToolBase[i]->m_FlowSortList = FlowProItemList_B; } break; } } //关闭时保存项目 dataVar::m_pWindow->slot_SaveProjectParam(1); if (dataVar::bol_connect == true) { dataVar::bol_connect = false; dataVar::sqlite.CloseDB(dataVar::soft_key, dataVar::database); } //相机 comm_keys.clear(); comm_keys = gVariable::camera_variable_link.uniqueKeys(); for (int k = 0; k < comm_keys.length(); k++) { QString key = comm_keys[k]; if (gVariable::camera_variable_link.value(key).mindvision_framebuffer_value != nullptr) { CameraStop(gVariable::camera_variable_link.value(key).mindvision_haldle_value); //相机反初始化,释放资源 CameraUnInit(gVariable::camera_variable_link.value(key).mindvision_haldle_value); CameraAlignFree(gVariable::camera_variable_link.value(key).mindvision_framebuffer_value); } } //通用I/O comm_keys.clear(); comm_keys = gVariable::generalio_variable_link.uniqueKeys(); for (int k = 0; k < comm_keys.length(); k++) { QString key = comm_keys[k]; if (gVariable::generalio_variable_link.value(key).io_value != nullptr) { gVariable::generalio_variable_link.value(key).io_value->close(); gVariable::generalio_variable_link.value(key).io_value->deleteLater(); gVariable::GeneralIoVar.connect_state = 0; gVariable::GeneralIoVar.io_value = nullptr; gVariable::generalio_variable_link.insert(key, gVariable::GeneralIoVar); } } //PLC通信 comm_keys.clear(); comm_keys = gVariable::plccommunicate_variable_link.uniqueKeys(); for (int k = 0; k < comm_keys.length(); k++) { QString key = comm_keys[k]; if (gVariable::plccommunicate_variable_link.value(key).mit_value != nullptr) { gVariable::plccommunicate_variable_link.value(key).mit_value->close(); gVariable::plccommunicate_variable_link.value(key).mit_value->deleteLater(); gVariable::PlcCommunicateVar.connect_state = 0; gVariable::PlcCommunicateVar.mit_value = nullptr; gVariable::plccommunicate_variable_link.insert(key, gVariable::PlcCommunicateVar); } } //串口通信 comm_keys.clear(); comm_keys = gVariable::serialport_variable_link.uniqueKeys(); for (int k = 0; k < comm_keys.length(); k++) { QString key = comm_keys[k]; if (gVariable::serialport_variable_link.value(key).serialport_value != nullptr) { gVariable::serialport_variable_link.value(key).serialport_value->close(); gVariable::serialport_variable_link.value(key).serialport_value->deleteLater(); } } //TCP/IP通信 comm_keys.clear(); comm_keys = gVariable::sockettcpserver_variable_link.uniqueKeys(); for (int k = 0; k < comm_keys.length(); k++) { QString key = comm_keys[k]; if (gVariable::sockettcpserver_variable_link.value(key).server_value != nullptr) { gVariable::sockettcpserver_variable_link.value(key).server_value->close(); gVariable::sockettcpserver_variable_link.value(key).server_value->deleteLater(); } } comm_keys.clear(); comm_keys = gVariable::sockettcpclient_variable_link.uniqueKeys(); for (int k = 0; k < comm_keys.length(); k++) { QString key = comm_keys[k]; if (gVariable::sockettcpclient_variable_link.value(key).client_value != nullptr) { gVariable::sockettcpclient_variable_link.value(key).client_value->close(); gVariable::sockettcpclient_variable_link.value(key).client_value->deleteLater(); gVariable::SocketTcpClientVar.connect_state = 0; gVariable::SocketTcpClientVar.client_value = nullptr; gVariable::sockettcpclient_variable_link.insert(key, gVariable::SocketTcpClientVar); } } //程序关闭记录Log emit dataVar::fProItemTab->sig_InfoClick(); emit dataVar::fProItemTab->sig_Log("主程序关闭..."); qApp->quit(); //退出系统,qApp是指向应用程序的全局指针 //关闭程序进程 HANDLE hself = GetCurrentProcess(); TerminateProcess(hself, 0); } frmQuit::~frmQuit() { if (this != nullptr) { this->deleteLater(); } }