可以在循环中多次调用Qapplication.exec.,如果是,如何



在循环中调用Qapplication.exec不会得到正确的结果。有人能给我一些其他的想法来做下面的事情吗。。感谢

像这个

public static void main(String args[]) {
        QNetworkProxy proxy = new QNetworkProxy(ProxyType.HttpProxy,Proxyname, port);
    QNetworkProxy.setApplicationProxy(proxy);
    for(int i=0; i<2;i++){
        QApplication.initialize(args);
                HelloWebKit widget = new HelloWebKit();
                widget.show();
                QApplication.exec();
    }
    }

QApplication.exec()通常在退出程序之前不会返回。文档提到,在某些情况下,控制可能不会返回到调用QApplication.exec()的代码。

如果您想同时运行两个QApplication实例,您可能需要调用两个单独的程序,或者使用不同的命令行参数调用同一个程序两次。

另一种可能性是使用两个线程,但如果你没有很有说服力的理由,我不建议你这样做。

摘录自QApplication文档:

QApplication包含主事件循环windows系统和其他源被处理和调度。

根据设计,应用程序中应该只有一个主事件循环。

exec继承自QCoreApplication。

QApplication.exec进入主事件循环并等待,直到调用exit()为止。

多次调用QApplication.exec是无稽之谈。这应该一劳永逸。

从Qt/C++的角度来看,您的小部件都可以共享由exec()启动的相同Qt消息泵。

public static void main(String args[]) {
    NetworkProxy proxy = new QNetworkProxy(ProxyType.HttpProxy,Proxyname, port);
    QNetworkProxy.setApplicationProxy(proxy);
    QApplication.initialize(args);
    for(int i=0; i<2;i++){
        HelloWebKit widget = new HelloWebKit();
        widget.show();
    }
    QApplication.exec();
}

尽管如此,我还没有使用过Qt Jambi,代码看起来并不是这样运行的。

最新更新