connect函数与lambda表达式的一点问题
尽量不要使用connect函数连接一个lambda表达式,因为lambda每次都会被分配一个新的地址(函数指针),会导致一个信号连接到多个重复的相同的lambda表达式,会导致弹出多个窗口,并多次进行重复操作。
不要使用这种写法:
connect(getTreeView(),&CustomTreeView::deleteStationSignal,this,[&](const QString& StationName){ //直接对选中内容进行删除 solution->deleteStation(StationName); //删除相应文件夹 if(!deleteDirName(solution->getSolutionName()+"/"+StationName)){ QMessageBox::critical(nullptr,tr("Error"),tr("Delete staition error.")); return; } createTreeView(); //写入文件 QJsonDocument tmp=dataStructToJsonDocument(); saveJsonFile(tmp); });

浙公网安备 33010602011771号