在循环中调用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,代码看起来并不是这样运行的。