QT MainWindow已退出时,用QTCreator编写的DLIB代码未退出

dlib code written in QtCreator in windows does not exits while qt mainwindow has been exited

本文关键字:退出 DLIB 代码 MainWindow QT QTCreator      更新时间:2023-10-16

好吧,我正在开发qt和dlib和opencv中的图像处理应用程序但是,在运行代码后我进行编码的QTwidget应用程序中,并且当代码完成时一切都很好,并且我点击MainWidow的QT MainWindow的关闭按钮关闭了,但是该应用程序不必手动停止代码当应用程序在应用程序中运行了与DLIB相关的代码时,它会发生关于代码,我只是打开一个网络摄像头,然后面对检测

while(frame_counter<100)
{
cv::Mat temp;
cap >> temp;
cv_image<bgr_pixel> cimg(temp);
full_object_detection shape;
std::vector<dlib::rectangle> faces = detector(cimg);
std::vector<full_object_detection> shapes;
for (unsigned long i = 0; i < faces.size(); ++i)
           {
shape = pose_model(cimg, faces[i]);
}
win.clear_overlay();
win.set_image(cimg);
win.add_overlay(render_face_detections(shape));
}

我不知道为什么会发生任何想法?

如果您的代码中有此行:

while()
{
}

那么它将永远不会脱离循环,您需要某种事件驱动的代码。您需要将单个循环丢弃,而是使用计时器tick或事件来驱动相机捕获代码,然后使用qapplication :: quit()

的事件
void frmMain::closeEvent(QCloseEvent *) {
    QApplication::quit();
}