1

在循环中调用 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();
    }
    }
4

3 回答 3

2

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

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

另一种可能性是使用两个线程,但如果您没有非常令人信服的理由,我不建议您这样做。

于 2012-02-08T06:13:46.957 回答
0

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

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,并且代码看起来不像这样运行。

于 2012-07-16T15:24:37.600 回答
0

QApplication 文档的摘录:

QApplication 包含主事件循环,来自窗口系统和其他源的所有事件都在其中处理和调度。

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

exec继承自 QCoreApplication。

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

多次调用 QApplication.exec 是无稽之谈。它应该一劳永逸地完成。

于 2012-02-08T09:40:52.410 回答