在循环中多次调用 Qapplication.exec 是可能的。如果是的话,如何?

发布于 2025-01-03 02:38:15 字数 487 浏览 0 评论 0原文

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

calling Qapplication.exec in a loop is not giving proper results.
can somebody give me some other idea to do the below thing..thanks

something like this

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();
    }
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

‘画卷フ 2025-01-10 02:38:15

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

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

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

QApplication.exec() typically doesn't return until you quit your program. The documentation mentions that control may not return to the code calling QApplication.exec() in some circumstances.

If you want to run two instances of QApplication simultaneously, you may have to invoke two separate programs or invoke the same program twice with different command line arguments.

Another possibility would be to use two threads, but I wouldn't recommend that if you don't have a very convincing reason for doing so.

沐歌 2025-01-10 02:38:15

QApplication 文档摘录:

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

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

exec 继承自 QCoreApplication。

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

多次调用 QApplication.exec 是无意义的。它应该一劳永逸地完成。

An excerpt from QApplication documentation:

QApplication contains the main event loop, where all events from the
window system and other sources are processed and dispatched.

By design, there should be one only one main event loop in an application.

exec is inherited from QCoreApplication.

QApplication.exec enters the main event loop and waits until exit() is called.

Invoking QApplication.exec many times is a nonsence. It should be done once and for all.

如此安好 2025-01-10 02:38:15

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

From a Qt/C++ perspective, your widgets can all share the same Qt message pump started by 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();
}

Still this being said I have not worked with Qt Jambi, and the code looks like it does not run as such.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文