c++ - 没有显示的 Qt 5.1 QApplication - QXcbConnection : Could not connect to display

标签 c++ qt qt5

我正在使用 Qt5.1,我正在尝试创建一个没有显示的 QApplication。我需要用 QPainter 绘制文本,所以我需要使用 QApplication(或 QGuiApplication),否则会出现段错误。

该应用程序在 Qt4.8 中运行良好,但在 Qt5.1 中在 Ubuntu 的 headless 版本上失败并出现错误:

"QXcbConnection: Could not connect to display".

在 Qt 4.8 中,我能够使用以下带有 GUIenabled = false 的构造函数来创建不需要显示的 QApplication:

QApplication::QApplication ( int & argc, char ** argv, bool GUIenabled )

在 Qt5.1 中,QApplication 的构造函数不再具有 GUIenabled 标志。

我简要地浏览了源代码,在 QApplication 构造函数中似乎确实有一个标志,但没有记录可以在该标志中使用哪些选项。使用“false”不起作用。

如何创建没有显示的 QApplication?是否有另一种方法可以告诉 QApplication GUIenabled = false?或者,我可以创建一个在 QImage 上使用 QPainter 绘制文本时不会出现段错误的 QCoreApplication 吗?

最佳答案

是的,这是 Qt 3(?)在 Qt 5 中消失的东西。尝试使用 -platform offscreen 运行您的应用程序改为命令行选项。

请注意,您不需要 QApplication或链接到 QtWidgets只是利用 QImage , 使用 QGuiApplication (并链接到 QtGui)就足够了。

关于c++ - 没有显示的 Qt 5.1 QApplication - QXcbConnection : Could not connect to display,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58546800/

相关文章:

使用 QOpenGLFrameBufferObject 类的 Qt5 OpenGL 多重采样

c++ - 是否可以确定一个类型是否是作用域枚举类型?

c++ - 如何将基于 qt 的应用程序(在 Mac 上开发)部署到 Windows?

c++ - 执行我的应用程序时出现警告消息 "No matching signal for"

c++ - 跨整个项目方法的单例类

linux - Qt应用,linux-arm平台切换页面时出现闪烁

c++ - 创建教程模式

c++ - 通过返回 front() 和 pops() 的函数清空 std::queue

c++ - 什么是最实惠的 C++ 音频库?

c++ - 比较两个字符串 C++