gpt4 book ai didi

c++ - 如何异步运行整个 QApplication?

转载 作者:太空宇宙 更新时间:2023-11-04 14:03:30 33 4
gpt4 key购买 nike

我正在尝试将修改后的 qt 程序作为库运行。我需要它而不是阻止主执行。

所以我想做的是运行 QApplication 并开始执行主应用程序。我该如何实现?

我的第一个想法是在一个单独的线程中运行它。

void MyClass::execute() {
someClass = someClass::instance();
std::thread t1(&MyClass::startApp, this);
someClass->someFunction();
someClass->doMoreStuff();
}
void MyClass::startApp() {
QApplication app(argc, argv);
app.exec();
QCoreApplication::quit();
}

但这会导致 Call to '__invoke' is ambiguous 错误。虽然我不知道为什么/在哪里 __invoke 被覆盖以及如何处理这个错误。 :(

那么我怎样才能做到 QApplication 不阻塞主执行呢?

最佳答案

设计模式是完全错误的,QApplication 和 QCoreApplication 不应该在一个应用程序中相乘。例如,您应该做的是像这样创建自己的类:

class LibraryCore: public QObject {
}

并在您 future 的库源中将 QApplication 替换为此类。然后你应该在 LibraryCore 中实现所需的方法(在应用程序内部使用的方法)使它们正常工作..

关于c++ - 如何异步运行整个 QApplication?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18100307/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com