创建一个真正无头的QApplication实例

时间:2017-03-09 04:23:30

标签: c++ macos qt pyqt5

我有一个Qt 5.8(通过PyQt5)应用程序,其中许多测试需要一个实时QApplication实例来测试gui小部件交互,但是在我的新Mac OS X(10.11.6)机器上运行这些测试时窗口不断被创建和销毁,导致整个系统的UI变得非常不稳定(尽管测试按预期传递)。我的测试甚至没有调用QApplication.exec() - QApplication()构造函数足以导致此问题。在我的linux机器上这没有问题,因为没有创建窗口(至少在我的X配置下)。 QCoreApplication不是一个选项,因为需要创建和使用实际的GUI小部件。尝试交换这两者会导致大量测试失败。

在Qt 5.8中是否有办法在不使用QApplication的情况下创建真正的无头QCoreApplication实例?

1 个答案:

答案 0 :(得分:1)

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

我找到了信息here

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

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

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