Qt QApplication程序意外完成

Qt QApplication程序意外完成,qt,Qt,我用OpenCV和QT库创建了我的项目。 在我的项目中,我向我的网络摄像头显示一个标记(使用aruco);当cam识别它时,将创建一个浏览器(带有Qt库)并显示一个站点。(您可以在此图像中看到它) 但是,当我关闭浏览器并再次向cam显示标记时(我不关闭项目),我的程序意外停止 我在Win7 x64上使用QtCreator 2.6.0 e qt 4.8.3库。 我认为问题在于QApplication。似乎还没有完全关闭 这是浏览器的创建代码(QApplication的创建): 有人有什么想法或

我用OpenCV和QT库创建了我的项目。 在我的项目中,我向我的网络摄像头显示一个标记(使用aruco);当cam识别它时,将创建一个浏览器(带有Qt库)并显示一个站点。(您可以在此图像中看到它)

但是,当我关闭浏览器并再次向cam显示标记时(我不关闭项目),我的程序意外停止

我在Win7 x64上使用QtCreator 2.6.0 e qt 4.8.3库。 我认为问题在于QApplication。似乎还没有完全关闭

这是浏览器的创建代码(QApplication的创建):

有人有什么想法或知道如何解决吗


谢谢

据我所知,您有一个应用程序至少有两个窗口(一个用于相机,一个用于浏览器),我怀疑BrowserApplication是QApplication的子类。这是正确的吗?如果我是正确的,请阅读QApplication类描述的前几行:

对于任何使用Qt的GUI应用程序,只有一个QApplication 对象,无论应用程序是否有0、1、2或更多窗口 在任何给定的时间


您没有提供BrowserApplication的实现,但我怀疑您正在创建两个实例。

据我所知,您有一个应用程序至少有两个窗口(一个用于相机,一个用于浏览器),我怀疑BrowserApplication是QApplication的子类。这是正确的吗?如果我是正确的,请阅读QApplication类描述的前几行:

对于任何使用Qt的GUI应用程序,只有一个QApplication 对象,无论应用程序是否有0、1、2或更多窗口 在任何给定的时间


您没有提供BrowserApplication的实现,但我怀疑您正在创建两个实例。

我怀疑
application.newMainWindow()。也许它会创建第二个实例。+1代表你的美丽。我怀疑
application.newMainWindow()。也许它创造了第二个实例。你的美丽是+1。卢卡,你说得对!我有一个带有两个窗口的应用程序(一个是用opencv为相机创建的,另一个是用qt为浏览器创建的)。问题是当第一个浏览器关闭时,我想创建第二个浏览器。关闭浏览器时,是否不应删除该实例?那么,我实际上如何删除浏览器的第一个实例呢?在这里,您可以找到BrowserApplication的实现:重新排列应用程序以避免QApplication的两个实例。您不需要为QApplication创建子类来创建包含网页的窗口。看看你报告的代码,我不明白你的意思。我可以避免使用BrowserApplication创建包含网页的窗口吗?QApplication与QtWebKit没有直接关系。请阅读文档:。卢卡,你说得对!我有一个带有两个窗口的应用程序(一个是用opencv为相机创建的,另一个是用qt为浏览器创建的)。问题是当第一个浏览器关闭时,我想创建第二个浏览器。关闭浏览器时,是否不应删除该实例?那么,我实际上如何删除浏览器的第一个实例呢?在这里,您可以找到BrowserApplication的实现:重新排列应用程序以避免QApplication的两个实例。您不需要为QApplication创建子类来创建包含网页的窗口。看看你报告的代码,我不明白你的意思。我可以避免使用BrowserApplication创建包含网页的窗口吗?QApplication与QtWebKit没有直接关系。请阅读文档:。
   int browser(int argc, char **argv)
{
    Q_INIT_RESOURCE(data);
    BrowserApplication application(argc, argv);
    if (!application.isTheOnlyBrowser())
        return 0;
    application.newMainWindow();
   return application.exec();

}