我的精神分裂 console/gui Qt5 程序应该使用 QApplication 还是 QCoreApplication?

Should my schizophrenic console/gui Qt5 program use QApplication or QCoreApplication?

我的程序将根据某些命令行参数打开或不打开 GUI。现在我正在为我的主事件循环实例化 QApplication,但注意到当 运行 从无头机器(缺少 xorg/xcb)时我的程序中止,除非我指定一些环境变量来欺骗它相信有一个 xorg 运行ning.

当我实例化 QCoreApplication 时,我无法访问 activeWindow()。在程序 运行 无头(即命令行参数的目的)的情况下,需要 activeWindow() 的代码永远不会 运行。

所以我想问的是,是否有可能使 QApplication 运行 即使在无头机器上也没有问题,并且根本不显示任何 GUI?

我还有哪些其他选择?

不,这是不可能的。 但是您可以根据命令行参数创建 QCoreApplication 或 QApplication。