gpt4 book ai didi

c++ - 创建一个真正的 headless QApplication 实例

转载 作者:行者123 更新时间:2023-12-05 05:21:33 24 4
gpt4 key购买 nike

我有一个 Qt 5.8(通过 PyQt5)应用程序,它的许多测试需要一个实时的 QApplication 实例来测试 gui 小部件交互。

然而,在我的新 Mac OS X (10.11.6) 机器上运行这些测试时,窗口不断地被创建和销毁,导致整个系统的 UI 变得非常不稳定(尽管测试按预期通过)。

我的测试甚至不调用 QApplication.exec() - QApplication() 构造函数足以引起这种情况。在我的 Linux 机器上这不是问题,因为没有创建窗口(至少在我的 X 配置下)。

QCoreApplication 不是一个选项,因为需要创建和使用实际的 GUI 小部件。尝试交换两者会导致大量测试失败。

在 Qt 5.8 中有没有一种方法可以在不使用 QCoreApplication 的情况下创建真正 headless 的 QApplication 实例?

最佳答案

我遇到了同样的问题,我认为解决方案是将参数 -platform offscreen 添加到 QApplication 的命令行。

我找到了资料here

假设您的应用程序可执行文件名为 app_exe

int main(int argc, char* argv[])
{
int argument_count = 3;
char* argument[3];
argument[0] = const_cast<char*>("app_exe");
argument[1] = const_cast<char*>("-platform");
argument[2] = const_cast<char*>("offscreen");
QApplication app(argument_count, argument);
return app.exec();
}

因此,您应该让您的应用程序运行但不显示任何 GUI。要查看应用程序是否正在运行,您应列出所有正在运行的任务,并且您的应用程序应位于其中。

关于c++ - 创建一个真正的 headless QApplication 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42686691/

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