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

Posted

技术标签:

【中文标题】我的精神分裂症控制台/gui Qt5 程序应该使用 QApplication 还是 QCoreApplication?【英文标题】:Should my schizophrenic console/gui Qt5 program use QApplication or QCoreApplication? 【发布时间】:2015-07-01 21:00:11 【问题描述】:

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

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

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

我还有哪些其他选择?

【问题讨论】:

【参考方案1】:

不,这是不可能的。 但是您可以从命令行参数中独立创建 QCoreApplication 或 QApplication。

【讨论】:

这就是我最终做的事情

以上是关于我的精神分裂症控制台/gui Qt5 程序应该使用 QApplication 还是 QCoreApplication?的主要内容,如果未能解决你的问题,请参考以下文章

PySide2和pyinstaller gui应用程序将无法在某些Windows计算机上运行

Qt5 抛出 std::bad_alloc

Qt 5.5.1:找不到 -lGL

为 IPC 和远程访问验证 WCF

在 Linux ARM 上编译不支持 GUI 的 Qt5

无法定位程序输入点_ZdaPvj于动态链接库 Qt5Core.dl Qt5Gui.dll上